您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?
Posted
技术标签:
【中文标题】您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?【英文标题】:Can you force Visual Studio to always run as an Administrator in Windows 8? 【发布时间】:2012-08-28 17:41:09 【问题描述】:在 Windows 7 中,您可以进入程序兼容性设置并勾选始终以管理员身份运行。 Windows 8 中是否有类似的选项?
我一直在我的机器上禁用 UAC,并且在我的 Windows 8 升级后也这样做了,或者我是这么认为的。原来没有off
选项,只关闭通知。
这意味着尽管在管理员组中,但没有任何内容以管理员身份运行。当我尝试调试(附加到进程,而不是 F5)时,我需要继续关闭并重新打开我的控制台\Visual Studio,这非常令人沮丧。
当我第一次去调试时,我需要记住采取额外的步骤以管理员身份打开它,或者告诉它关闭并重新打开,这真的很烦人。
【问题讨论】:
我认为这是一个有效的问题,但我认为您也应该向 SuperUser 提问 - 可能会有一个普遍的答案。 如果VS需要以管理员身份启动,那么你的文件权限不对。禁用 UAC 很容易搞砸。 @Keats 需要管理员权限才能在 IIS 上运行 ASP.NET 应用程序(因为它会尝试自动创建虚拟目录等) @camelBase 我觉得,程序应该只在需要时才以管理员身份运行。通常它们应该在较低的权限下运行。我就是这么做的。 你真的不应该这样做,因为如果你使用 2 个项目并且只有一个需要以管理员身份运行,你不应该以管理员身份启动另一个实例。 【参考方案1】:在 Windows 8 和 10 中,您必须右键单击 devenv.exe
并选择“疑难解答兼容性”。
-
选择“疑难解答程序”
勾选“程序需要额外权限”
点击“下一步”
点击“测试程序...”
等待程序启动
点击“下一步”
选择“是,保存此程序的这些设置”
点击“关闭”
如果打开 Visual Studio 时要求保存对 devenv.sln 的更改,请参阅此答案以禁用它:
Disable Visual Studio devenv solution save dialog
如果您改变主意并希望撤消“以管理员身份运行”兼容性设置,请在此处查看答案:How to Fix Unrecognized Guid format in Visual Studio 2015
【讨论】:
这是我遇到的最好的解决方案。现在我可以再次从 Windows 资源管理器打开 .sln 文件了! 同样,它还解决了能够以管理员身份运行的固定解决方案。谢谢。 如果您安装了多个版本的 Visual Studio,您可能还希望在C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe
文件上执行此操作。此外,devenv.exe 文件的默认路径是:Visual Studio 2010 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
。 Visual Studio 2012 - C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
你如何将它恢复到原来的样子?
@RobertKoritnik 这相当于在HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
下添加名称为C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
和值RUNASADMIN
的注册表项。删除条目会恢复设置。【参考方案2】:
查看超级用户后,我找到了this question,它解释了如何使用开始屏幕上的快捷方式执行此操作。同样,当 Visual Studio 固定到任务栏时,您也可以这样做。在任一位置:
-
右键单击 Visual Studio 图标
转到
Properties
在Shortcut tab
下选择Advanced
查看Run as administrator
与 Windows 7 不同,这仅在您从更改的快捷方式启动应用程序时才有效。更新两个 Visual Studio 快捷方式后,当您从资源管理器打开解决方案文件时,它似乎也可以工作。
更新警告:
看起来以提升的权限运行 Visual Studio 的主要缺陷之一是因为资源管理器也没有与它们一起运行,因此您无法将文件拖放到 Visual Studio 中进行编辑。您需要通过文件打开对话框打开它们。你也不能双击任何与 Visual Studio 关联的文件并在 Visual Studio 中打开它(除了看起来的解决方案),因为你会收到一条错误消息,说 There was a problem sending the command to the program.
一旦我取消选中总是以提升的权限开始(使用 VSCommands)然后我可以直接打开文件并将它们放入 Visual Studio 的打开实例中。
勇敢者更新: 尽管没有像过去那样关闭 UAC 的 UI,但至少我看到了,您仍然可以通过注册表来关闭 UAC。编辑的关键是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA - DWORD 1-Enabled, 0-Disabled
更改此 Windows 后会提示您重新启动。重新启动后,如果您是管理员,您将回到以管理员权限运行的所有内容。我上面报告的问题现在也没有了。
【讨论】:
如果您关闭 UAC,某些 Metro 应用程序(如 SkyDrive)将不再工作。 对于 Windows 8,TigerShark 下面的答案(在资源管理器中右键单击 devenv.exe,疑难解答..)似乎是一个更完整的解决方案。 @ClaraOnager 右键单击开始屏幕中的图标并选择“打开文件位置”。这将打开保存快捷方式的文件夹,然后您可以从那里查看它的属性。 @Boomerangertanger 哦不,不是我的地铁应用程序! 讽刺> 地铁应用程序摇滚。结束。【参考方案3】:注意在最近的 VS 版本(2015 年以上)中,此扩展似乎不再存在/具有此功能。
您还可以下载 Squared Infinity 的 VSCommands for VS2012,它具有将其更改为以管理员身份运行的功能(以及其他一些很酷的点点滴滴)
更新
可以使用 Tools
->Extensions and Updates
选择 Online
并搜索 vscommands
从 Visual Studio 菜单栏中安装命令,然后根据使用 2012 或 2013(或更高版本)选择 VSCommands for Visual Studio 20XX
继续)并下载并安装。
【讨论】:
我在更新快捷方式权限后安装了它,所以我不确定它有什么不同。除了管理员权限外,这个插件还有一些不错的功能值得自己检查。 当您从任务栏快捷方式的快速访问菜单启动项目时,VSCommands 功能也有效。很棒的东西! @BrianSurowiec 它做了什么它在 VS 的启动中添加了一些东西,这样如果它没有以管理员身份运行,它会杀死自己并以管理员权限启动一个新实例 @DaveInCaz 很遗憾是真的。我想他停止了。我已经编辑了答案以说明这一点。【参考方案4】:-
在 Windows 8 开始菜单中选择所有应用程序
右键单击 Visual Studio 2010 图标
选择打开文件位置
右键单击 Visual Studio 2010 快捷方式图标
点击高级按钮
选中以管理员身份运行复选框
点击确定
【讨论】:
很好的答案,但仅在从图标启动时才有效,而不是在您右键单击图标并启动固定解决方案时。在 Windows 8 和 10 上尝试过,到目前为止,只有故障排除方法对我有用,才能启动固定的解决方案。【参考方案5】:这是my answer to a similar post on SuperUser的副本:
选项 1 - 将 VSLauncher.exe 和 DevEnv.exe 设置为始终以管理员身份运行
让 Visual Studio 始终以管理员身份运行在打开任何 .sln 文件时:
-
导航到
C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe
。
右键单击VSLauncher.exe
并选择疑难解答兼容性。
选择疑难解答程序。
勾选程序需要额外权限,然后点击下一步。
点击Test the program...按钮启动VS。
点击下一步,然后点击是,保存此程序的这些设置,然后点击关闭按钮。
要让 Visual Studio 始终以管理员身份运行直接打开 Visual Studio 时,对 DevEnv.exe 文件执行相同的操作。这些文件位于:
Visual Studio 2010
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
Visual Studio 2012
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
Visual Studio 2013
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
Visual Studio 2015
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
Visual Studio 2017
C:\Program Files (x86)\Microsoft Visual Studio\2017\[VS SKU]\Common7\IDE\devenv.exe
选项 2 - 为 Visual Studio 使用 VSCommands 扩展
安装免费的VSCommands extension for Visual Studio(位于the Visual Studio Extensions Gallery),然后通过转到工具-> VSCommands-> 选项-> IDE 增强功能-> 常规并勾选@,将其配置为始终以管理员权限启动Visual Studio 987654332@ 并点击保存按钮。
注意:VSCommands 目前不适用于 VS 2015,但他们的网站表示他们正在努力对其进行更新以支持 VS 2015。
我的意见
我更喜欢选项 2,因为:
它还允许您轻松关闭此功能。 VSCommands 带有许多其他很棒的功能,所以我总是安装它。 它比选项 1 更容易做到。【讨论】:
Windows 10 - 每次我打开 .sln 文件 VS 2015 都会询问我是否要保存对 devenv.exe 的更改 @FrenkyB 您是否执行了针对 VS 2015 的选项 1 列出的步骤?将其设置为以管理员身份运行应该可以解决该问题。 ***.com/a/14423461/602585 现在可以使用了。我刚刚保存了 devenv.exe,它不再抱怨了。【参考方案6】:当我在 Visual Studio 2012 旁边安装 Visual Studio 2010 时,VSCommands 对我不起作用并导致问题。
经过一些实验,我找到了诀窍:
转到HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
并添加一个名称为"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe"
和值"RUNASADMIN"
的条目。
这应该可以解决您的问题。我也已经blogged 了。
【讨论】:
出于某种原因,这对我不起作用,但在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
中添加条目反而起到了作用。
这个答案在功能上与前两个不同吗?【参考方案7】:
我知道这有点晚了,但我只是想出了如何通过修改(阅读,“破解”)devenv.exe 文件的清单来做到这一点。我应该先来这里,因为所述解决方案似乎更容易一些,并且可能更受 Microsoft 的支持。 :)
我是这样做的:
-
在 VS 中创建一个名为“Exe Manifests”的项目。 (我认为任何版本都可以使用,但我使用的是 2013 Pro。另外,你给它起什么名字并不重要。)
“添加现有项”到项目中,浏览到 Visual Studio exe,然后单击“确定”。就我而言,它是“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe”。
双击“devenv.exe”文件,该文件现在应列为项目中的一个文件。它应该在资源编辑器中调出 exe。
展开“RT_MANIFEST”节点,然后双击该节点下的“1”。这将在二进制编辑器中打开可执行文件的清单。
找到requestedExecutionLevel 标记并将“asInvoker”替换为“requireAdministrator”。阿拉:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
保存文件。
您刚刚保存了添加到项目中的可执行文件的副本。现在您需要备份原始文件并将修改后的 exe 复制到您的安装目录。
正如我所说,这可能不是正确的方法,但它似乎有效。如果有人知道需要发生任何负面影响或必要的手腕拍打,请插话!
【讨论】:
如果您这样做,那么将无法以 LUser 身份运行应用程序,并且不应允许以管理权限运行任何内容,除非出于已知的、良好的原因(例如作为自动配置 IIS)【参考方案8】:如果您像我一样使用 Total Commander,您应该为 Total Commander 始终以管理员身份运行。然后您将能够在同一个 SQL Server 管理实例中双击打开 sql 文件,或者双击打开任何 Visual Studio 文件而不打开多个实例。
此疑难解答程序将注册表值添加到任何程序的 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,因此如果您想直接编写它,您可以。
【讨论】:
它基本上向该注册表路径添加了一个新的字符串值,名称是可执行文件的完整路径(不带引号),数据为RUNASADMIN
,以防你想这样做手动。【参考方案9】:
我在 EightForums (Option 8) 上找到了一个简单的方法,在 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 下创建一个字符串值。将名称设置为程序的路径,并将值设置为 ~RUNASDMIN。 下次打开程序时,它会以管理员身份打开
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\devenv.exe"="~RUNASADMIN"
【讨论】:
【参考方案10】:另外,您可以查看compatibility troubleshooting
右键单击 Visual Studio > 选择疑难解答兼容性。 选择疑难解答程序。 检查程序需要额外的权限。 点击测试程序。 稍等片刻,直到程序启动。点击下一步。 选择是,保存此程序的这些设置。 等待解决问题。 确保最终状态是固定的。点击关闭。在 Visual Studio requires the application to have elevated permissions 查看详细步骤以及始终以管理员身份打开 VS 的其他方法。
【讨论】:
在 Windows 10 上解决了我的问题。谢谢。【参考方案11】:只需在 Program Files 目录(或其他位置)中找到该程序。右键单击EXE文件,在底部的第二个选项卡上选中强制以管理权限运行该程序的复选框。 从现在开始,exe 文件的所有快捷方式都将以管理员权限触发:)
【讨论】:
这适用于“属性”窗口具有“兼容性”选项卡的所有系统,Windows 8 没有(尽管 Windows 8.1 有)。【参考方案12】:如果项目的应用程序清单指定了管理requestedExecutionLevel
,Visual Studio 会自动提升自身,因此您只需对其进行编辑。 Visual Studio 会检测到这一点,并在需要时以管理员身份重新启动。
【讨论】:
【参考方案13】:这些都不适合我。我一直以管理员身份启动它的方式是修改注册表。
1. Just start regedit.exe.
2. Navigate to Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
3. Right Click New->String Value
4. Add C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe (or the correct path for your system)
5. Right Click on this entry and select Modify.
6. Add for Value Data: ~ RUNASADMIN.
全部完成。
【讨论】:
这行得通,谢谢。以上是关于您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?的主要内容,如果未能解决你的问题,请参考以下文章
visual studio 2008有64位的吗?我win 7 x64系统,怎么装 vs2008
出现microsoft visual c Runtime library错误win7 32位旗舰版
visual studio 2010 一个解决方案里有多个c++源文件 怎么只执行其中一个?