分类 默认分类 下的文章

InnoSteup | 打包后由于执行权限导致无法执行问题


描述

在win11系统安装用InnoSetup封装的程序,安装完成运行程序时,不是无法运行就是运行后闪退,涉及执行权限不够,因为默认安装的目录在C:Program Files(x86)下,正常安装进去是没有足够权限运行,会报错导致无法运行。

解决办法

方法1:修改Inno Setup创建出来的iss内的代码

启动Inno Setup进行编译时,输入相关编译基础信息后,会根据输入的相关内容自动生成编译脚本,在脚本中加入以下2行脚本内容:

[Dirs]
Name: {app}; Permissions: users-full

因为默认生成的脚本是没有[Dirs]这个字段的,增加这两行脚本后,打包的程序的安装目录拥有完全控制的权限。

方法2:修改SetupLdr.e32下的配置文件

使用Resource Hacker 修改 INNO安装目录下的SetupLdr.e32文件中的Manifest内容
修改SetupLdr.e32第24行内容:

原文:<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
修改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

注意编译后保存!!!