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

98

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

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

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

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

Paul0515
источник

Ответы:

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 и не боитесь напрямую изменять реестр. Нетрудно узнать, для чего нужны определенные ключи реестра.
Габриэль Люси