我刚刚开发了一个能够自我修补的.NET程序。
我注意到只有选择“以管理员身份运行”时才会运行修补过程。
似乎我需要“创建并嵌入一个Application Manifest”,根据这个:
https://msdn.microsoft.com/en-us/library/bb756929.aspx
所以我的问题:
像我这样的应用程序(可自行修补)是否正常需要管理员权限,这是我应该走的路线吗?
由于
答案 0 :(得分:0)
如果您的应用程序通常不需要提升,那么我建议您不要在清单中提出请求,因为这对您的用户来说非常烦人。 Firefox使用NT服务来绕过UAC对话框,但除非您的更新非常频繁,否则我无法推荐。
我建议您编写一个执行修补的更新程序。它可以在清单中请求提升,这样用户只需要在有补丁的情况下提升。如果您不想在捆绑包中使用其他.exe,则可以在需要修补时使用runas
verb再次执行。
答案 1 :(得分:0)
编辑NSIS脚本以包含此行:
AccessControl::GrantOnFile \"$INSTDIR" "(S-1-5-32-545)" "FullAccess"
这使用户帐户可以完全访问Program Files中的应用程序文件夹,这意味着我的修补程序可以毫无问题地写入它。