我有一个 C# 应用程序,我必须对 C 驱动器的根目录具有读/写访问权限。我意识到我可以编译代码并以管理员身份运行可执行文件,并且它可以工作。但我需要调试它,并且我不确定如何在 Visual Studio 中启动该应用程序。
我尝试添加:
<requestedExecutionLevel level="asInvoker" uiAccess="true" />
到我的清单,但我仍然收到访问被拒绝的错误。
这是失败的代码行:
MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\somemapnamefile.data", System.IO.FileMode.OpenOrCreate, "somemapname", 1000);
目前我有解决办法,但我想知道未来的情况。
只需以管理员身份运行 Visual Studio 本身即可。您从那里调试的任何程序也将以管理员身份运行。
VS 必须以管理员权限运行。然而,更优雅的方法是清单中的 requiredExecutionLevel 应设置为“requireAdministrator”。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
当你打开项目并尝试调试时,VS2012会警告管理员权限,并重新启动到管理员权限。而且exe文件将首先被标记为需要管理员权限,因此部署时您不需要在文件属性中配置管理员权限要求。
您还可以自动设置此管理员选项:
要回答标题中的问题,您只需在启动 VS 时从上下文菜单中选择“以管理员身份运行”即可。
现在检查的答案将不起作用。
您应该在项目属性 Linker -> Manifest File -> UAC Execution Level 中找到一个选项。将其设置为 requireAdminstrator。
这将导致默认生成的清单包含您需要的 requestedExecutionlevel,以便您的用户在尚未提升权限的情况下,系统会自动提示他们提升权限。
出现“此任务需要应用程序具有提升的权限”错误,因为当前用户没有足够的权限来打开 Visual Studio。
作为临时解决方案
您可以通过右键单击 Visual Studio 并在每次打开它时选择以管理员身份运行来解决此问题
作为永久解决方案,
您可以检查兼容性故障排除
有关图像的详细步骤,请检查Visual Studio 要求应用程序具有更高的权限
我来自TUTURE来回答这个问题。 事实上,现在已经是 2024 年了,而且已经很长时间没有出现在 stackoverflow 上了。
好吧,你可以说我疯了,但是..但我不想每次都以管理员身份运行这个。
简单的解决方案——启动 Visual Studio 时按住 Ctrl+Shift 键。这将为您提供用户帐户控制面板。
当我需要时,我也会为 Windows 终端执行此操作。