MSI包装另一个安装

时间:2015-01-28 17:00:00

标签: windows-installer installshield custom-action

我正在使用InstallShield的AdminStudio 2014(嵌入在Visual Studio 2013中)并拥有一个基本的MSI项目。我最近在我的CA项目中添加了WiX。

安装的想法是将供应商的驱动程序与我们的附加文件一起打包。对于最终用户来说,它看起来应该是一次安装。我最初的尝试是将我的installdir中的供应商安装文件放在子目录中,并在安装时运行自定义操作以及许多所需的命令行参数(包括SILENT)。但是,我遇到的问题是它有时返回退出代码1310(需要重启),这导致我检查退出代码失败。

让我先说一下我仍然试图完全理解一些"脚本内执行"和序列。

我的第二次尝试是在c#中编写一个函数来执行并​​捕获退出代码,然后使用返回的退出代码设置一个属性,或者只是自己设置ISSCHEDULEREBOOT。但是,我在InstallFiles之后运行它,因为我将安装放到我的安装目录中,似乎我不允许从延迟CA设置属性,但是(这是我的理解)我不能立即这样做,因为文件还没有确定,直到执行脚本(?)。赶上22。

我接下来想到在我的运行之前安装了一个先决条件,但这不能让我在卸载期间卸载它(?)。

我查看了链式MSI(反对看起来很多建议)但是我提供了一个来自供应商的大型CD媒体(多个目录和文件)和一个setup.exe而不是一个MSI即InstallShield似乎在寻找。

我有许多CA和其他部分都运转良好。我确定我遇到的这些障碍是由于我对架构和流程缺乏了解。在过去6个月左右的时间里,我一直在使用一组安装程序,但是知道有很多机会可以学习。

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

WiX有一个名为Burn的引导程序,它可以同时处理链接软件包以进行安装和卸载。它被Visual Studio等产品使用。

InstallShield的这个版本是套件安装程序。这仅适用于InstallShield Premiere版本,我不确定它是否在AdminStudio版本中。