2012-01-15 89 views
1

我有一个代码在MFC中调用MsiInstallProduct(installerFullPath, commandLine);windows MSI可以安装多个软件包吗?

是否可以同时安装2个MSI产品? 只要它们都是独立的。

是可以调用Windows函数并给我所有的MSI组件,它会安装逐一?

回答

4

Windows安装程序不允许在同一time.You安装多个MSI软件包需要触发装置此起彼伏,等待第一个你启动第二个前完成。在一次调用中安装它们的唯一选择是创建另一个MSI包,一个是主包,将两个包作为链接包添加。

+0

和我怎么做链接的程序包?我在哪里可以找到更多关于这方面的信息 – eladyanai 2012-01-15 11:57:49

4

在Windows Installer 4.5之前,Bogdan的回答是正确的。但是,由于使用Windows Installer 4.5和更高版本,您可以执行Multiple-Package Installation。通过调用MsiBeginTransaction,API的某些组合(如MsiInstallProduct,MsiApplyPatchMsiConfigureProduct),然后最终MsiEndTransaction来完成此操作。

技术上这些仍然不完全安装在同一时间(它会调用多个功能),但是这使得他们一个交易的一部分。如果所有参与的软件包都被正确创作,它们将全部被安装,修补或配置(修改或移除),或全部回滚到它们的开始状态。

1

迈克尔提到的多包的安装是完全通过链接程序包使用的支持,并且他也提到了这一点至少需要有Windows Installer 4.5在目标计算机上。

要创建在其中添加作为链接,你可以使用不同的设置创作工具,免费的和商业,这取决于你有可利用的时间在两个那些MSI软件包。下面是工具列表: http://en.wikipedia.org/wiki/List_of_installation_software

+0

他们会同时运行吗? – eladyanai 2012-01-24 10:13:44

+0

安装UI将按顺序运行,但基于多包安装标准,系统上的更改将在单个事务中提交。所以当主包安装它的文件时,即使它们的UI序列已经完成,它也会从所有链接包中安装文件。 – 2012-01-25 08:20:01

相关问题