C#程序用Inno Setup打包,以管理员身份运行的处理方法

时间:2022-10-05 16:56:18

一、C#项目端的处理

目标:快捷方式有带盾的标识

 

在源码的Properties目录中找到 app.manifest,将其中level="asInvoker" 改成 level="requireAdministrator"。

如果没有app.manifest文件可以打开项目属性,找到安全性项,勾上启用 ClickOnce 安全设置,这时会生成app.manifest文件,然后再把勾去掉。

重新编译,程序图标就会出现小盾牌,以后会自动以管理员身份运行。

 

二、Inno Setup端的处理

 

1、[Setup]段增加 

PrivilegesRequired=admin 

2、找到INNO安装目录下的SetupLdr.e32文件,将文件的

<security><requestedExecutionLevel level="asInvoker" uiAccess="false"/></requestedPrivileges></security>

改为 

<security><requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges></security>

这样所有被编译出的安装程序在Windows Vista/7/8/10 下启动时就会自动提示需要管理员权限。

注:用ResHacker来修改SetupLdr.e32