我们有类似于Microsoft Office的产品。有很多共享库的几个不同的应用程序。我们正在尝试重构此产品的部署过程,因为目前我们正在使用多个单独的MSI软件包来独立安装每个应用程序。虽然这很有效,但我们希望使用WiX引导程序捆绑这些MSI文件并只创建一个安装应用程序。目前,所有共享库都包含在每个MSI包中,这需要占用大量空间。
我们基本上有两种选择来实现这一目标:
在WiX引导程序项目中首选哪种方法?
答案 0 :(得分:0)
具有许多功能的一个大型MSI难以支持。
在MSI之间共享组件很容易。共享组件必须具有相同的GUID和组件密钥路径。请参阅details。
要轻松实现此目标,请为所有共享组件(其自己的片段中的每个组件或组件组)创建一个WiX库项目。然后将库包含到所有WiX Package项目中,并在WiX Package项目中引用其组件(或组件组)。
答案 1 :(得分:0)
您可以将共享组件分组到多个MSI中,然后为您的应用程序创建一个或多个引导程序。
要了解的几个关键事项:
可以配置MsiPackages,以便当引导程序安装MSI时,它会在“程序和功能”(ARP)列表中显示或不显示MsiPackage。
MSI可能有也可能有自己的用户界面。在任何情况下,您都可以在MsiPackage元素中禁止它。如果您确实需要在安装过程中询问用户某些内容,可以在客户引导程序中询问并将其作为MsiProperty传递给MSI。
因此,我建议为每个应用程序和每组共享组件提供MSI。并且,一个或多个引导程序用于一个或应用程序MSI以及它们所需的共享MSI。如果您创建custom bootstrapper application UI(C ++或.NET),如Visual Studio和WiX本身,您的用户可以使用一个引导程序选择性地安装/卸载您的各种应用程序。