installation - 带有自定义操作的 installshield

标签 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,如果我将上面第一张图片中的脚本内执行从“立即执行”更改为“提交执行”并继续到下一个屏幕,那么我使用我尝试过的任何组合都会出现以下错误
enter image description here

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

最佳答案

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

延迟或提交操作不会在 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/

相关文章:

windows - 在 Windows 上执行互斥安装?

android - 如何自动更新应用程序;安卓

c# - 如何在 WiX MSI 中降级第三方文件

c# - 如何制作没有可点击屏幕的 .msi 文件(全自动)?

windows-installer - 如何更新现有 MSI 中的程序集?

wpf - 在 Windows Vista/7 上的 APPDATA 中创建文件夹

installation - 使用 Wix 安装 32 位和 64 位驱动程序?

linux - Linux/Unix 'make install' 应该由什么组成?

c# - 如何编写我也可以作为 winforms 程序运行的 c# 服务?

xml - C# 自定义操作 Linq to XML 与 XmlConfig/XmlFile