我有一个c#应用程序,我必须具有对C盘根目录的读/写访问权限。我意识到我可以编译代码并以管理员身份运行可执行文件。但我需要调试它,我不确定如何在Visual Studio中启动应用程序。
我尝试过添加:
<requestedExecutionLevel level="asInvoker" uiAccess="true" />
到我的清单但我仍然得到访问被拒绝错误。
以下是失败的代码行:
MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\somemapnamefile.data", System.IO.FileMode.OpenOrCreate, "somemapname", 1000);
现在我有一个工作,但我想知道未来。
答案 0 :(得分:107)
以管理员身份运行visual studio本身。您从那里调试的任何程序也将以管理员身份运行。
答案 1 :(得分:55)
VS必须以管理员权限运行。但是,一个更优雅的方法是在manifest中的requiredExecutionLevel中设置为“requireAdministrator&#39;。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
当您打开项目并尝试调试时,VS2012将警告管理员权限并重新启动管理权限。并且exe文件将被标记为首先要求管理员,因此在部署时您不需要在文件属性中配置管理权限要求。
答案 2 :(得分:12)
您也可以自动设置此管理员选项:
答案 3 :(得分:7)
要回答标题中的问题,您可以在启动VS时从上下文菜单中选择以管理员身份运行。
答案 4 :(得分:1)
现在选中的答案将不起作用。
您应该在项目属性 Linker -> 清单文件-> UAC执行级别中找到一个选项。将此设置为 requireAdminstrator 。
这将导致默认生成的清单包含所需的 requestedExecutionlevel ,这样,如果尚未提升用户权限,则会自动提示您提升其权限。
答案 5 :(得分:0)
发生此错误是因为当前用户没有足够的权限来打开Visual Studio。
要通过右键单击visual studio来解决此问题,并在每次打算打开时选择以管理员身份运行
此外,您可以将兼容性故障排除检查为永久性解决方案
要查找有关如何应用图片的详细步骤,请查看此link
希望它可以帮到你