繁体   English   中英

Windows MSI可以安装多个软件包吗?

[英]Can windows MSI install multiple packages?

我在MFC中有一个调用MsiInstallProduct(installerFullPath, commandLine);

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

是否可以调用Windows函数并将其提供给我所有的MSI组件,它将一一安装?

Windows Installer不允许同时安装多个MSI软件包。您需要一个接一个地触发安装,等待第一个完成,然后再启动第二个。 将它们安装在一个调用中的唯一选择是创建另一个MSI软件包,即主软件包,在其中将两个软件包作为链式软件包添加。

在Windows Installer 4.5之前,Bogdan的答案是正确的。 但是,由于使用Windows Installer 4.5及更高版本,您可以执行多程序包安装 为此,请调用MsiBeginTransaction ,API的某种组合(例如MsiInstallProductMsiApplyPatchMsiConfigureProduct) ,然后再调用MsiEndTransaction

从技术上讲,它们仍然不能完全同时安装(并且需要调用多个函数),但这使它们全部成为一个事务的一部分。 如果正确编写了所有参与程序包,则将全部安装,打补丁或配置(修改或删除)它们,或者将它们全部还原到其初始状态。

Michael提到的多软件包安装正是链式软件包所使用的支持,正如他还提到的,这至少需要在目标计算机上安装Windows Installer 4.5。

要创建一个MSI程序包,在其中将两个程序链接在一起添加,您可以使用其他设置创作工具,免费和商用,这取决于您的可用时间。 以下是工具列表: http : //en.wikipedia.org/wiki/List_of_installation_software

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM