InstallShield专业版 - 自定义操作 - Setup.exe与MSI

时间:2013-12-04 01:52:23

标签: windows-installer installshield setup.exe

我有一个Windows窗体应用程序(加载项快速解决方案),我已经为其创建了一个InstallShield安装项目,该项目使用自定义操作(由加载项快速生成的自动)。自定义操作正在启动可执行文件(可执行文件用于注册“添加”)。

当我为项目生成setup.exe文件时,一切正常。自定义操作正在运行,并且正在正确安装加载项。

当我生成一个msi文件(取消选中Installshield的Release Wizard中的“Create installation launcher”选项)时,自定义操作没有运行(加载项未安装,但程序显示在程序列表中控制面板)当我尝试安装产品时。

使用自定义操作时是否需要使用setup.exe版本,或者在尝试生成msi文件时是否未正确配置项目?

2 个答案:

答案 0 :(得分:3)

直接运行MSI或使用Setup.exe之间的区别在于用户权限升高的顺序。

如果您运行Exe,您可能会收到一个请求更多权限的UAC Popup,您单击OK并且所有内容都将升级(具有管理员权限)。

如果从已提升的命令提示符运行它,一切都将升级。

如果你正常运行msi(例如双击它),它将运行整个installUIsequence 然后它将运行installexecute序列,当到达InstallInitialize Action 时,它将请求提升的权限。

一旦 InstallFinalize 操作运行,权限就会被删除。

因此您需要在InstallInitialize之后和InstallFinalize操作之前放置需要管理员权限的自定义操作

答案 1 :(得分:0)

我最终要解决的问题是将自定义操作设置为在系统上下文中运行。

In-Script Execution: Deferred Execution in System Context
相关问题