我正在使用 installsheild 2012 Premier 创建一个基本的 msi 项目。我有两个问题。
1.) MSI 需要在创建正在安装的应用程序的文件夹和文件后运行自定义 exe。它只需要在安装应用程序时执行一次。
2.) MSI 还需要告诉正在运行的自定义 exe,用户选择运行 MSI 的语言。
我对问题 2 一无所知。关于问题 1,这是我的尝试,如下所述:
我现在设置它的方式是,它在创建产品的文件和文件夹之前就在开始时运行一次。下面是我的设置
然后单击下一步转到下面的屏幕....
现在,为了仅在创建文件和文件夹后运行自定义 exe,如果我将上面第一张图片中的脚本内执行从“立即执行”更改为“提交执行”并继续到下一个屏幕,那么我使用我尝试过的任何组合都会出现以下错误
请帮帮我。谢谢你的时间。
最佳答案
对于脚本内执行组合,您应该使用 deferred或 commit执行。如果您的自定义操作需要管理员权限,则应在 中推迟或提交。系统上下文 .
延迟或提交操作不会在 InstallUISequence 中运行,因此在 Insert Into Sequence 对话框中确保 Install UI Sequence 组合设置为:
<Absent from sequence>
延迟操作在 InstallFinalize 之前运行.由于您想在安装文件后运行您的自定义操作,您可以将 Install Execute Sequence 组合设置为:
After InstallFiles
安装语言存储在ProductLanguage属性(property)。所以你可以use it directly在您的自定义操作命令行中,例如:
[ProductLanguage]
此属性包含语言标识符。您可以在此处找到标识符列表:http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx
关于installation - 带有自定义操作的 installshield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167663/