带自定义操作的installshield

use*_*358 4 installation windows-installer installshield

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

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

2.)MSI还需要告诉自定义exe运行,用户选择运行MSI的语言.

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

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

在此输入图像描述

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

在此输入图像描述

现在,为了仅在创建文件和文件夹之后运行自定义exe,如果我在上面的第一个图像中将In-Script执行从"立即执行"更改为"提交执行"并继续下一个屏幕,那么我我尝试过的任何组合都会出现以下错误 在此输入图像描述

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

Cos*_*rvu 5

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

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

<Absent from sequence>
Run Code Online (Sandbox Code Playgroud)

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

After InstallFiles
Run Code Online (Sandbox Code Playgroud)

安装语言存储在ProductLanguage属性中.因此,您可以直接在自定义操作命令行中使用它,例如:

[ProductLanguage]
Run Code Online (Sandbox Code Playgroud)

此属性包含语言标识符.您可以在此处找到标识符列表:http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx