0

我有必备软件安装程序 xyz.msi,它应该通过主安装程序 pqr.msi 安装。我使用 Visual Studio 2015 安装程序项目来创建 pqr.msi 安装程序。

我还需要检查某些条件,例如 xyz.msi 是否已经安装在目标机器上。

我知道我可以在 pqr 安装程序中添加 xyz.msi 作为程序集并设置以下属性以有条件地复制 xyz.msi:

健康)状况

但是,如何调用 pre-requsite 安装程序以在主安装程序之前静默安装/启动。这会导致嵌套安装并失败吗?还有其他更好的方法吗?

4

1 回答 1

1

您所指的副本的条件实际上只是将文件安装到目标系统的条件,是(例如)应用程序文件夹的普通副本。它不会安装 MSI,就像它会运行您安装的某些 exe 文件一样。

您也无法通过自定义操作安装 MSI(这将导致嵌套安装失败),因此您需要一种在您自己的 MSI 之前安装它的方法。我知道有两种选择:

  1. 引导清单生成器可用于构建 setup.exe,它将安装您的必备 MSI,然后安装您的 MSI。从这里开始:

https://msdn.microsoft.com/en-us/library/ms165429.aspx

  1. 使用 WiX 生成一个捆绑包,您可以在其中将先决条件 MSI 标记为您的先决条件。您将使用 MsiPackage 来安装您的 MSI。

http://wixtoolset.org/documentation/manual/v3/bundle/bundle_author_chain.html http://wixtoolset.org/documentation/manual/v3/bundle/

请注意,您不是使用 WiX 构建 MSI,而是构建引导程序包。

如果该必备 MSI 来自第 3 方,那么他们可能有其他安装方式,例如您添加到您自己的 MSI 构建中的合并模块。

于 2017-06-21T22:49:11.770 回答