VS2017 / VS 2019从任务栏以管理员身份运行


98

当我从任务栏中的最新列表中选择一个项目时,我想以管理员身份运行Visual Studio 2017/2019。通过Explorer / Shell快捷方式打开项目时。

我确实使用了以下设置:属性->快捷方式->高级->以管理员身份运行复选框。

不幸的是,这不会导致devenv以管理员身份运行。

有想法该怎么解决这个吗?

Answers:


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. 点击关闭
  13. 从最近的列表重新打开您的项目

4
自引入vs版本选择器以来,这对于Visual Studio的所有先前版本也是相同的解决方案。反对的人要么将其设为个人,要么拒绝接受现状。感谢您确认此方法仍然有效,我只需要在尝试之前检查一下即可:)
Shaun Wilson

6
您会认为MS会有一个vs设置-“始终以管理员身份运行”-因为任何不重要的开发都需要它
pm100

1
@ pm100好吧,有些具有此设置的VSCommands VS Addin。但是我确实同意,VS中的Web开发和IIS支持的性质应该提供内置的功能。如果将IIS用于解决方案,则需要管理员权限。VS可能应该自动检测到并重新启动请求。
罗伯特·科里特尼克'17

仅供参考:这会使VS每次启动时都要求以管理员身份运行。
杰夫B

1
每当我需要安装新版本的VS时,我都会
偶然发现

16

史蒂夫答案中的步骤的效果是添加了单个注册表值。您可以通过仅通过命令行添加该注册表值来避免所有这些步骤。由于某种原因,我发现要花一点时间才能生效,但是注销/登录应该立即使它生效。

由于某种奇怪的原因,我发现就我而言,Windows并未检查HKLM。它只是看着HKCU。所以我都设置了。但是对于其他登录的用户,HKLM应该派上用场。

还包括为VSLauncher.exe设置相同的值,从而解决了其他问题。

这将同时处理VS2017和2019。如果仅安装了其中一个,则删除另一个的行。

另外,如果您将VS安装到的文件夹更改了,则将路径更改为devenv.exe,或者使用Steve的答案进行另一种操作。

在管理员命令提示符下:

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年以及关于它的注释。
加布里埃尔·卢西(Jabric Luci)

1
编辑注册表并不适合所有人。您必须非常小心,否则将导致整个操作系统崩溃。因此,我将投票表决并推荐史蒂夫的答案作为您可能拥有的最安全的解决方案!再次,这是我的意见!

@Vincy当然可以,但是如果您使用的是Visual Studio,您可能会对Windows有所了解,而不必担心直接修改注册表。查找某些注册表项的用途并不难。
加布里埃尔·卢西(Jabric Luci)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.