ChatGPT解决这个技术问题 Extra ChatGPT

您可以强制 Visual Studio 在 Windows 8 中始终以管理员身份运行吗?

在 Windows 7 中,您可以进入程序兼容性设置并勾选始终以管理员身份运行。 Windows 8 中是否有类似的选项?

我一直在我的机器上禁用 UAC,并且在我的 Windows 8 升级后也这样做了,或者我是这么认为的。原来没有off选项,只有关闭通知。

这意味着尽管在管理员组中,但没有任何内容以管理员身份运行。当我尝试调试(附加到进程,而不是 F5)时,我需要继续关闭并重新打开我的控制台\Visual Studio,这非常令人沮丧。

真的很烦人,我需要记住采取额外的步骤以管理员身份打开它,或者在我第一次去调试时告诉它关闭并重新打开。

我认为这是一个有效的问题,但我认为您也应该向 SuperUser 提问 - 可能会有一个一般性的答案。
如果 VS 需要以管理员身份启动,那么你的文件权限是错误的。他们很容易在禁用 UAC 的情况下搞砸。
@Keats 在 IIS 上运行 ASP.NET 应用程序需要管理权限(因为它将尝试自动创建虚拟目录等)
@camelBase 我觉得,程序应该只在需要时才以管理员身份运行。通常它们应该在较低的权限下运行。我就是做这个的。
你真的不应该这样做,因为如果你使用 2 个项目并且只有一个需要以管理员身份运行,你不应该以管理员身份启动另一个实例。

S
Sachin Joseph

在 Windows 8、Windows 10 和 Windows 11 中,您必须右键单击 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 的注册表项。删除条目将恢复设置。
I
IAbstract

查看超级用户后,我发现 this question 解释了如何使用开始屏幕上的快捷方式执行此操作。同样,当 Visual Studio 固定到任务栏时,您也可以这样做。在任一位置:

右键单击 Visual Studio 图标转到属性在快捷方式选项卡下选择高级检查以管理员身份运行

https://i.stack.imgur.com/PwMjI.png

与 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 的打开实例中。

The Daring 更新:尽管没有像过去那样关闭 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 哦,不,不是我的地铁应用程序!
地铁应用程序摇滚。结束。
N
Not loved

注意在最近的 VS 版本(2015+)中,此扩展似乎不再存在/具有此功能。

您还可以下载 Squared Infinity 的 VSCommands for VS2012,它具有将其更改为以管理员身份运行的功能(以及其他一些很酷的点点滴滴)

https://i.stack.imgur.com/4VoyY.png

更新

可以使用 Tools->Extensions and Updates 选择 Online 并搜索 vscommands 从 Visual Studio 菜单栏中安装命令,然后根据使用 2012 或 2013(或更高版本)选择 VSCommands for Visual Studio 20XX ) 并下载并安装。


我在更新快捷方式权限后安装了它,所以我不确定它有什么不同。除了管理员权限,这个插件还有一些不错的功能,值得自己检查。
当您从任务栏快捷方式的快速访问菜单启动项目时,VSCommands 功能也有效。很棒的东西!
@BrianSurowiec 它做了什么它在 VS 的启动中添加了一些东西,这样如果它没有以管理员身份运行,它会杀死自己并以管理员权限启动一个新实例
@DaveInCaz 可悲的是真的。我想他停止了。我已经编辑了答案以说明这一点。
m
moribvndvs

在 Windows 8 开始菜单上选择所有应用程序右键单击 Visual Studio 2010 图标选择打开文件位置右键单击 Visual Studio 2010 快捷方式图标单击高级按钮选中以管理员身份运行复选框单击确定


好的答案,但仅在从图标启动时才有效,而不是在您右键单击图标并启动固定解决方案时。在 Windows 8 和 10 上尝试过,到目前为止,只有故障排除方法对我有用,才能启动固定的解决方案。
d
deadlydog

这是 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 并选择疑难解答兼容性。选择疑难解答程序。勾选该程序需要额外的权限,然后点击下一步。单击“测试程序...”按钮以启动 VS。单击下一步,然后单击是,保存此程序的这些设置,然后单击关闭按钮。

要让 Visual Studio 在直接打开 Visual Studio 时始终以管理员身份运行,请对 DevEnv.exe 文件执行相同的操作。这些文件位于:

视觉工作室 2010

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

视觉工作室 2012

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe

视觉工作室 2013

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe

视觉工作室 2015

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe

视觉工作室 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 中),然后通过转到工具 -> 将其配置为始终让 Visual Studio 以管理员权限启动VSCommands ->选项-> IDE 增强 ->常规并勾选 Always start Visual Studio with elevated permissions 并单击保存按钮。

注意:VSCommands 目前不适用于 VS 2015,但他们的网站表示他们正在努力更新它以支持 VS 2015。

我的意见

我更喜欢选项 2,因为:

它还允许您轻松关闭此功能。

VSCommands 带有许多其他很棒的功能,所以无论如何我总是安装它。

它比选项1更容易做到。


Windows 10 - 每次我打开 .sln 文件 VS 2015 都会询问我是否要保存对 devenv.exe 的更改
@FrenkyB您是否执行了 VS 2015 的选项 1 列出的步骤?将其设置为以管理员身份运行应该可以解决该问题。 stackoverflow.com/a/14423461/602585
现在可以了。我刚刚保存了 devenv.exe,它不再抱怨了。
S
Stacked

当我在 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 中添加条目反而起到了作用。
这个答案在功能上与前两个不同吗?
J
Jim Strawn

我知道这有点晚了,但我只是想出了如何通过修改(读取,“黑客”)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”。阿拉: 保存文件。

您刚刚保存了添加到项目中的可执行文件的副本。现在您需要备份原始文件并将修改后的 exe 复制到您的安装目录。

正如我所说,这可能不是正确的方法,但它似乎有效。如果有人知道需要发生任何负面影响或必要的手腕拍打,请插话!


如果您这样做,那么将无法以 LUser 身份运行应用程序,并且不应允许以管理权限运行任何内容,除非出于已知的、良好的原因(例如自动配置 IIS)需要它们
d
drejKamikaza

如果您像我一样使用 Total Commander,您应该为 Total Commander 始终以管理员身份运行。然后,您将能够在同一个 SQL Server 管理实例中双击打开 sql 文件,或者在双击打开任何 Visual Studio 文件而不打开多个实例。

此疑难解答程序将注册表值添加到任何程序的 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,因此,如果您想直接编写它,您可以。


它基本上将一个新的字符串值添加到该注册表路径,名称是可执行文件的完整路径(不带引号),数据是 RUNASADMIN,以防您想手动执行。
M
Mike

我在 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"

M
Mohamed

此外,您还可以查看 compatibility troubleshooting

右键单击 Visual Studio > 选择疑难解答兼容性。

选择故障排除程序。

检查程序需要额外的权限。

单击测试程序。

稍等片刻,直到程序启动。点击下一步。

选择是,保存此程序的这些设置。

等待解决问题。

确保最终状态是固定的。单击关闭。

检查详细步骤,以及在 Visual Studio 中始终以管理员身份打开 VS 的其他方法要求应用程序具有提升的权限。


在 Windows 10 上,这是我的问题的解决方案。谢谢。
B
BlueMan

只需在 Program Files 目录(或其他位置)中找到该程序。右键单击EXE文件,在底部的第二个选项卡上选中强制以管理权限运行该程序的复选框。从现在开始,exe 文件的所有快捷方式都将以管理权限触发:)


这适用于“属性”窗口具有“兼容性”选项卡的所有系统,Windows 8 没有(尽管 Windows 8.1 有)。
G
Gogu CelMare

这些都不适合我。我以管理员身份始终启动它的方式是修改注册表。

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.

全部完成。


这行得通,谢谢。
b
beppe9000

如果项目的应用程序清单指定管理 requestedExecutionLevel,Visual Studio 会自动提升自身,因此您只需对其进行编辑。 Visual Studio 将检测到这一点,并在需要时以管理员身份重新启动。