如何使用 Visual Studio 在调试中以管理员身份运行应用程序?

问题描述 投票:0回答:7

我有一个 C# 应用程序,我必须对 C 驱动器的根目录具有读/写访问权限。我意识到我可以编译代码并以管理员身份运行可执行文件,并且它可以工作。但我需要调试它,并且我不确定如何在 Visual Studio 中启动该应用程序。

我尝试添加:

<requestedExecutionLevel level="asInvoker" uiAccess="true" />

到我的清单,但我仍然收到访问被拒绝的错误。

这是失败的代码行:

MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\somemapnamefile.data", System.IO.FileMode.OpenOrCreate, "somemapname", 1000);

目前我有解决办法,但我想知道未来的情况。

c# visual-studio
7个回答
157
投票

只需以管理员身份运行 Visual Studio 本身即可。您从那里调试的任何程序也将以管理员身份运行。


78
投票

VS 必须以管理员权限运行。然而,更优雅的方法是清单中的 requiredExecutionLevel 应设置为“requireAdministrator”。

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

当你打开项目并尝试调试时,VS2012会警告管理员权限,并重新启动到管理员权限。而且exe文件将首先被标记为需要管理员权限,因此部署时您不需要在文件属性中配置管理员权限要求。


12
投票

您还可以自动设置此管理员选项:

enter image description here


7
投票

要回答标题中的问题,您只需在启动 VS 时从上下文菜单中选择“以管理员身份运行”即可。


7
投票

现在检查的答案将不起作用。

您应该在项目属性 Linker -> Manifest File -> UAC Execution Level 中找到一个选项。将其设置为 requireAdminstrator

这将导致默认生成的清单包含您需要的 requestedExecutionlevel,以便您的用户在尚未提升权限的情况下,系统会自动提示他们提升权限。


2
投票

出现“此任务需要应用程序具有提升的权限”错误,因为当前用户没有足够的权限来打开 Visual Studio。

作为临时解决方案

您可以通过右键单击 Visual Studio 并在每次打开它时选择以管理员身份运行来解决此问题

作为永久解决方案

您可以检查兼容性故障排除

  • 右键,单击 Visual Studio > 选择兼容性疑难解答。
  • 选择故障排除程序。
  • 检查该程序需要额外权限。
  • 单击“测试程序”。
  • 稍等片刻,直到程序启动。单击下一步。
  • 选择是,保存该程序的这些设置。

有关图像的详细步骤,请检查Visual Studio 要求应用程序具有更高的权限


0
投票

我来自TUTURE来回答这个问题。 事实上,现在已经是 2024 年了,而且已经很长时间没有出现在 stackoverflow 上了。

好吧,你可以说我疯了,但是..但我不想每次都以管理员身份运行这个。

简单的解决方案——启动 Visual Studio 时按住 Ctrl+Shift 键。这将为您提供用户帐户控制面板。

当我需要时,我也会为 Windows 终端执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.