VS2017 / VS 2019 Запуск от имени администратора с панели задач


98

Я хотел бы запустить Visual Studio 2017/2019 от имени администратора, когда я выберу проект из недавнего списка на панели задач , т.е. при открытии проекта через ярлыки Explorer / Shell.

Я использовал настройку: свойства -> ярлык -> расширенный -> запуск от имени администратора.

К сожалению, это не приводит к тому, что devenv работает от имени администратора.

Есть какие нибудь идеи как это починить?

Ответы:


262
  1. Закройте все экземпляры Visual Studio
  2. Щелкните правой кнопкой мыши значок Visual Studio 2017/2019 на панели задач.
  3. Щелкните правой кнопкой мыши Visual Studio 2017/2019 и выберите Свойства.
  4. Нажмите кнопку открытия файла
  5. Щелкните правой кнопкой мыши файл devenv.exe в этой папке.
  6. Выберите Устранение неполадок совместимости.
  7. Выберите программу устранения неполадок
  8. Выберите Программе требуются дополнительные разрешения
  9. Нажмите Проверить программу и дождитесь запуска программы.
  10. Затем нажмите кнопку Далее
  11. Выберите Да, сохранить эти настройки для этой программы
  12. Нажмите Close
  13. Повторно откройте свой проект из недавнего списка

4
это то же самое решение для всех предыдущих версий Visual Studio с тех пор, как был введен селектор версии vs. любой, кто голосует против, либо делает это личным, либо отказывается принять статус-кво. Спасибо за подтверждение того, что этот метод все еще работает, мне просто нужно было проверить, прежде чем пытаться :)
Шон Уилсон,

6
Вы могли бы подумать, что у MS будет параметр vs - «всегда запускать от имени администратора» - поскольку этого требует любая нетривиальная разработка
pm100

1
@ pm100 Ну почему-то есть VSCommands VS Addin, у которых есть этот параметр. Но я согласен с тем, что природа веб-разработки и поддержки IIS в VS должна обеспечивать это встроенным. Если IIS используется для решений, вам потребуются права администратора. VS, возможно, должен обнаружить это автоматически и перезапустить запрос для них.
Роберт Коритник

Просто к вашему сведению: это заставляет VS запрашивать запуск от имени администратора каждый раз при запуске.
Jeff B

1
Я просто натыкаюсь на это всякий раз, когда мне нужно установить новую версию VS ... Теперь, в 2019 году, то же решение все еще работает
moi_meme

16

Результатом шагов в ответе Стива является добавление одного значения реестра. Вы можете избежать всех этих шагов, просто добавив это значение реестра через командную строку. По какой-то причине я обнаружил, что для вступления в силу требуется некоторое время, но выход из системы / вход в систему должен немедленно вступить в силу.

По какой-то странной причине я обнаружил, что в моем случае Windows не проверяет HKLM. Он смотрел только на HKCU. Итак, я установил оба. Но для других пользователей, которые вошли в систему, HKLM должен пригодиться.

Также включена установка того же значения для VSLauncher.exe, что решает другие проблемы.

Это касается как VS2017, так и 2019 года. Если у вас установлен только один из них, удалите строки для другого.

Кроме того, если вы изменили папку, в которую устанавливается VS, измените путь к ней devenv.exeили просто используйте ответ Стива, чтобы сделать это другим способом.

В командной строке администратора:

reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe" /d "^ RUNASADMIN"
reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe" /d "^ RUNASADMIN"
reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe" /d "^ RUNASADMIN"

reg.exe Add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe" /d "^ RUNASADMIN"
reg.exe Add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe" /d "^ RUNASADMIN"
reg.exe Add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe" /d "^ RUNASADMIN"

Или, если вы предпочитаете файл .reg:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\\IDE\\devenv.exe"="^ RUNASADMIN"
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\devenv.exe"="^ RUNASADMIN"
"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\MSEnv\\VSLauncher.exe"="^ RUNASADMIN"

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\\IDE\\devenv.exe"="^ RUNASADMIN"
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\devenv.exe"="^ RUNASADMIN"
"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\MSEnv\\VSLauncher.exe"="^ RUNASADMIN"

Хотя это может быть полезно, оно не будет работать (копировать и вставить) для людей, у которых это приложение установлено где-то еще, в будущей версии VS или других приложений, которые люди хотят запускать таким же образом.
Энтони Николс

1
Когда я писал это, в заголовке вопроса конкретно говорилось только о VS2017 :) Поскольку это было изменено, я добавил строки, чтобы позаботиться о 2019 году, и примечание об этом.
Габриэль Люси

1
Редактирование реестра не для всех. Вы должны быть очень осторожны, иначе вы закончите сбоем всей вашей ОС. Поэтому я бы проголосовал за и порекомендовал ответ Стива как самое безопасное решение, которое вы могли бы иметь! Опять же, это мое мнение!
Vincy

@Vincy Конечно, но есть вероятность, что если вы используете Visual Studio, вы кое-что знаете о Windows и не боитесь напрямую изменять реестр. Нетрудно узнать, для чего нужны определенные ключи реестра.
Габриэль Люси
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.