前言 :
应用程序在Vista或是Win7上执行时,有时会有权限不足的问题。
简单的解法是请用户在应用程序图标上右键单击,然后选择以系统管理员身分执行。
但这个动作常常会被使用者忘记。
这个问题在VS2008或是VS2010上已经有了解决方案 :
(请参考)
http://social.msdn.microsoft.com/Forums/zh-TW/1007/thread/ce70e22d-45f7-4903-b8f4-76a159d3002d
http://www.dotblogs.com.tw/jjnnykimo/archive/2009/05/08/8346.aspx
http://www.dotblogs.com.tw/dotnetfactory/archive/2008/12/01/6152.aspx
这篇文章是描述在VS2005的开发环境上,如何实作上述的解决方案。
实作 :
3. 将下列内容写入App.manifest
<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 name="MyApplication.app" version="1.0.0.0"></assemblyidentity> <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedprivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedexecutionlevel level="requireAdministrator" uiaccess="false"></requestedexecutionlevel> </requestedprivileges> </security> </trustinfo> </asmv1:assembly>
5. 将下列内容写入建置后事件命令行
"$(DevEnvDir)..\..\SDK\v2.0\Bin\mt.exe" -manifest "$(ProjectDir)App.manifest" -outputresource:"$(TargetDir)$(TargetName).exe;#1"