这适用于 VS2010 和 VS2012 。但是在 VS2013 应用程序中(通过按“运行”或 F5 )只是以我的用户权限启动,无法访问某些资源(我正在使用HttpListener)。
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
我试图谷歌,试图生成新的清单,从MSDN复制它的内容,但没有任何帮助。 VS2013 的这一部分有什么变化吗?
UPDATE1:
那是一个部分。这是完整的清单内容:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application></application>
</compatibility>
</asmv1:assembly>
UPDATE2:
这里的Okey是一个简单的例子:当我运行编译的.exe文件时,UAC要求管理员权限。但是,当我从 VS2013 (通过按“运行”或 F5 )运行它时,它不会!如果您使用 VS2012 / VS2010 打开同一个项目,他们会要求在管理员下重新启动。
你可以快速检查:
在 VS2013 中创建控制台应用程序,添加清单并设置 level =“requireAdministrator”。然后运行或按 F5 ( VS2013 在按下 Ctrl-F5 时在管理员下运行应用程序。)
但这不是 VS2012 / VS2010 的行为!
我们怎样才能得到旧的行为?
UPDATE3:
请投票here或通知我另一张票。
答案 0 :(得分:14)
您需要禁用托管进程选项以获取VS重新启动提示。单击项目+属性,调试选项卡,取消选中“启用Visual Studio主机进程”复选框。立即启动VS可能更容易。右键单击快捷方式“以管理员身份运行”。
不完全确定这是错误还是功能。请密切关注this Connect report以了解详情。
更新:看起来像一个错误,反馈报告被关闭为“已修复”。不幸的是,当修复程序将其作为我们的机器时它没有提示。也许未来的VS2013更新,肯定是下一个版本。
Update2:修复程序进入VS2013 Update 3。
答案 1 :(得分:2)
我最终做的是在没有调试CRTL+F5
的情况下运行项目。它给了我与Visual Studio 2010相同的提示。
答案 2 :(得分:1)
我希望很快就能解决这个问题 同时你可以使用方便的快捷方式在管理模式下重启VS,在扩展库中查找“Visual Studio Restart”。
编辑:
只有我看到你能够实现旧的行为才能关闭VS主机进程,因为这个过程由于某种原因“吃掉”提升提示。实际上,当我考虑它时,这种行为甚至可能是设计上的。您可以在项目属性(Debug)中关闭托管进程,或者在生成.csproj时设置平台配置UseVSHostingProcess标记为false,如下所示:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>