我正在使用installsheild 2012 premier创建一个基本的msi项目。我有两个问题。
1。)MSI在创建了正在安装的应用程序的文件夹和文件后,需要运行自定义exe。在安装应用程序时,它只需要执行一次。
2。)MSI还需要告诉自定义exe正在运行,用户选择哪种语言来运行MSI。
我对问题2一无所知。关于问题1,这是我的尝试,如下所述:
我现在设置它的方式,它在开始之前运行一次,甚至创建产品的文件和文件夹。以下是我的设置
然后点击下一步转到下面的屏幕....
现在,为了在创建文件和文件夹之后运行自定义exe,如果我在上面的第一张图片中将In-Script执行从“立即执行”更改为“提交执行”,并继续下一个屏幕,然后我用我尝试过的任何组合得到以下错误
请帮帮我。谢谢你的时间。
答案 0 :(得分:5)
对于脚本内执行组合,您应该使用deferred或commit执行。如果您的自定义操作需要管理员权限,则应该在系统上下文中延迟或提交。
延迟或提交操作不在InstallUISequence中运行,因此在插入序列对话框中,确保将安装UI序列组合设置为:
<Absent from sequence>
延迟操作在InstallFinalize之前运行。由于您希望在安装文件后运行自定义操作,因此可以将安装执行顺序组合设置为:
After InstallFiles
安装语言存储在{{3}}属性中。因此,您可以在自定义操作命令行中ProductLanguage,例如:
[ProductLanguage]
此属性包含语言标识符。您可以在此处找到标识符列表:use it directly