Visual Studio 2017 - 从资源管理器中打开Visual Studio - 权限错误

9
我正在使用VS 2017企业版。
我已经设置为在管理员模式下打开/运行,这对于SLN文件是有效的。
但是,我正在尝试通过右键单击资源管理器中的文件夹来使用新的“在Visual Studio中打开”功能。我收到以下权限错误。无论我尝试哪个文件夹都会出现此问题。
然而,VS Code没有任何问题。
是否需要启用更多内容?
请参考以下链接查看图片:enter image description here enter image description here

我在所有电脑上都遇到了同样的问题,使用不同版本的VS 2017。重要的是要记住,只有在文件夹上选择此选项时才会出现此错误,而不是在文件上选择。这个错误不是由VS生成的,而是由资源管理器引发的。 - Daniel B
@Daniel谢谢。那么我猜你还没有找到解决方案? - aherrick
3个回答

0

我的第一个猜测是,该机器上的VS 2017应用程序本身(devenv.exe)被配置为始终以管理员身份运行,请参阅https://technet.microsoft.com/en-us/library/ff431742.aspx以了解如何更改:

要将应用程序标记为始终以管理员身份运行,请执行以下操作:
1. 在“开始”菜单上,找到您想要始终以管理员身份运行的程序。
2. 右键单击应用程序的快捷方式,然后单击“属性”。
3. 在“属性”对话框中,单击“兼容性”选项卡。
4. 执行以下操作之一:
- 要将设置应用于当前登录的用户,请选择“以管理员身份运行此程序”复选框,然后单击“确定”。
- 要将设置应用于计算机上的所有用户并且无论使用哪个快捷方式启动应用程序,请单击“更改所有用户的设置”,以显示应用程序的.exe文件的属性对话框,选择“以管理员身份运行此程序”复选框,然后两次单击“确定”。

另外,还有一些需要管理员帐户才能执行的操作,请参阅https://msdn.microsoft.com/en-us/library/jj662724.aspx。通常使Web开发人员始终以管理员身份运行VS的原因是“将Web应用程序部署到本地计算机上的Internet信息服务(IIS)”和“调试在不同用户帐户下运行的应用程序,例如ASP.NET网站。”


0

对我来说,它已经按照预期工作了,至少这可以帮助你。 首先问题是如何“设置为管理员模式打开/运行”?

使用Visual Studio 2017快捷方式的“高级按钮”是不够的,因为右键菜单中的方法不使用此快捷方式。

使用兼容性选项卡的方法,就像SergGr已经提到的那样
(https://technet.microsoft.com/en-us/library/ff431742.aspx) 对我有用,我已经能够将其用于文件夹以及解决方案文件!

我已登录为本地管理员组的成员,并将UAC标准设置为Win 8.1。

除了使用兼容性页面之外,另一个可能性是将自己的清单注入到devenv.exe中。两者都不是很干净(我不喜欢整个兼容性层,但它在这里有点帮助)。

您是否尝试过暂时关闭UAC进行测试?或者您如何配置UAC?

如果您按照所描述的方式操作,则资源管理器应该显示正确的UAC消息。

enter image description here


很不幸,UAC已经关闭了。此外,我已将VS设置为在加载时以管理员身份运行。只有在尝试通过资源管理器打开文件夹时才会出现此错误。然而,打开解决方案却没有问题。 - aherrick
@aherrick,我的意思是您可能应该 清除 该设置,因为这是错误的原因。但是,UAC被关闭降低了我正确的几率。您的用户是否实际上是“管理员”组的成员? - SergGr
也许您可以尝试重新激活UAC,至少是暂时的,以找出您系统上的区别?因为通常情况下,即使开启UAC,这也能正常工作。您是否可能在系统上使用了一些Windows策略开关来控制UAC,而不是通过GUI“正常”关闭它?我自从Vista以来就没有看到过这个错误消息了。(顺便问一句,您使用的是哪个Windows版本?) - Philm
我刚刚进入了UAC设置,并将滑块全部向下移动。我暂时将其移回,但仍然出现相同的错误。我将其再次移回(关闭它),但仍然看到相同的错误。 - aherrick
你重启了吗?因为关于UAC的错误是相当不寻常的,如果UAC被禁用,我就没有更多的想法了。实际上,上下文菜单背后的逻辑并不是很难,它似乎只是在寻找一个.sln文件并打开它。所以很奇怪为什么在你的系统上不起作用。 - Philm
显示剩余2条评论

-1

如果这对我有效,但对您无效,请参考(https://marketplace.visualstudio.com/items?itemName=GregTrevellick.OpeninVisualStudio2017Enterprise):

1. 打开notepad.exe并将以下内容粘贴到其中:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@="\"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\" \"%1\""

这是我的注册表文件,仅在您需要时导出(您不应该需要):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\
  00,46,00,69,00,6c,00,65,00,73,00,20,00,28,00,78,00,38,00,36,00,29,00,5c,00,\
  4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,56,00,53,00,20,\
  00,43,00,6f,00,64,00,65,00,5c,00,43,00,6f,00,64,00,65,00,2e,00,65,00,78,00,\
  65,00,22,00,20,00,22,00,25,00,31,00,22,00,00,00

2. 另存为 VSElevated.reg

3. 前往保存 .reg 文件的位置,双击打开,选择全部是并点击确定。

4. 完成后您的注册表应该如下所示:

enter image description here

我认为原因是你的启动命令中缺少了%1。加上它应该可以解决问题。

1
你好。我对你的回答感到困惑。你是在提到VS Code吗?这里的问题是与VS2017有关。 - aherrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接