带自定义操作的installshield

时间:2011-11-17 13:13:24

标签: installation windows-installer installshield

我正在使用installsheild 2012 premier创建一个基本的msi项目。我有两个问题。

1。)MSI在创建了正在安装的应用程序的文件夹和文件后,需要运行自定义exe。在安装应用程序时,它只需要执行一次。

2。)MSI还需要告诉自定义exe正在运行,用户选择哪种语言来运行MSI。

我对问题2一无所知。关于问题1,这是我的尝试,如下所述:

我现在设置它的方式,它在开始之前运行一次,甚至创建产品的文件和文件夹。以下是我的设置

enter image description here

然后点击下一步转到下面的屏幕....

enter image description here

现在,为了在创建文件和文件夹之后运行自定义exe,如果我在上面的第一张图片中将In-Script执行从“立即执行”更改为“提交执行”,并继续下一个屏幕,然后我用我尝试过的任何组合得到以下错误 enter image description here

请帮帮我。谢谢你的时间。

1 个答案:

答案 0 :(得分:5)

对于脚本内执行组合,您应该使用deferredcommit执行。如果您的自定义操作需要管理员权限,则应该在系统上下文中延迟或提交。

延迟或提交操作不在InstallUISequence中运行,因此在插入序列对话框中,确保将安装UI序列组合设置为:

<Absent from sequence>

延迟操作在InstallFinalize之前运行。由于您希望在安装文件后运行自定义操作,因此可以将安装执行顺序组合设置为:

After InstallFiles

安装语言存储在{​​{3}}属性中。因此,您可以在自定义操作命令行中ProductLanguage,例如:

[ProductLanguage]

此属性包含语言标识符。您可以在此处找到标识符列表:use it directly