我正在使用InstallShield创建一个msi安装包。
我有自定义操作来安装第三方exe。这个exe有一个UI,它会提示用户点击"是"或"否"。如果用户单击“否”,则不会安装该exe,但会继续安装msi。我想在用户中断第三方exe的安装后立即结束msi安装。
在任何一种情况下(无论用户是单击是还是否),返回值为1.所以我被卡住了。
你能帮我解决这个问题。
答案 0 :(得分:1)
如果这是依赖项,请不要使用自定义操作进行安装。这就是seup.exe类型的bootstrapper的用途。他们安装必需的先决条件(如.NET框架和C ++运行时),然后启动MSI安装。
不使用自定义操作的另一个原因是放置自定义以安装此第三方exe的位置。如果你把它放在你的UI序列中,那么就不能对你的MSI进行静默安装(因为UI序列被抑制了),如果你把它放在执行序列中,如果基于MSI就会失败,因为你不能有递归的MSI安装(你的另一个)。
答案 1 :(得分:0)
EXE是否接受任何命令行参数才能使其静音?一般来说这是一件坏事,因为:
1)EXE可能会失败并给您的安装程序失败的印象。
2)可能会失败并吞下错误。
3)不记录到您的MSI日志,可能根本不记录。
4)MSI不知道EXE所做的更改,因此不支持Rollback,Resilency,Uninstall
这个清单一直在继续。
答案 2 :(得分:0)
安装第三方exe作为先决条件。 InstallShield允许您定义自己的先决条件,InstallShield的引导程序可以使用先决条件。