添加/删除程序中包含多个条目的WIX安装程序

时间:2009-03-03 12:35:16

标签: wix windows-installer wix3

我正在使用WIX为Application Suite开发安装程序,结构是 如下:
应用核心
| _ _ Flavor1
| _ _ Flavor2
| _ _ Flavor3

Application Core是像Visual Studio这样的产品,Flavors 1,2,3是它下面的子产品。

这是我的问题,
  - 在添加删除程序中应该有4个条目用于Application Core,Flavor1,Flavor2和Flavor3。
  - 我应该可以重新启动添加/删除Flavor1,Flavor2和Flavor3的安装程序。

3 个答案:

答案 0 :(得分:5)

更新:请注意,虽然Office 出现以安装单独的功能,而不是单独的产品 - 但它实际上安装了许多不在ARP中显示的单独产品。添加单独的ARP条目以启动引导程序安装程序,然后维护添加,删除和更新您在ARP中看不到的现有产品。

这些应该是功能,而不是单独的产品。以Microsoft Office套件为例,如果您安装套件,那么您在添加/删除程序中只有一个条目,而Word,Excel,Powerpoint等都只是Microsoft Office之外的“功能”,您可以通过这种方式更新它们。

但是,您可以使用自己的安装程序单独购买其中一些应用程序,在这些情况下,每个安装程序都会包含“Application Core”,使用共享组件,这样文件就不需要安装两次了每个应用程序可以彼此独立地安装/卸载。

以下是Components and Features上的Windows Installer文档的一些摘录(您可能还想阅读Organizing Applications into Components

  

两个共享相同的组件   组件ID被视为多个   同一组件的实例   不管他们的实际内容如何。   只有一个实例   组件安装在用户的   电脑。几个功能或   因此,申请可能会分享一些   组件。

答案 1 :(得分:2)

通常这是通过安装一个产品来完成的,因此您可以修改(添加/删除程序)中的一个条目(选择产品,单击修改按钮)。然后,您将转到功能树,您可以在其中添加或删除功能。

如果单独的条目是硬性要求,则应创建多个MSI。但是,您可以在示例中卸载“Application Core”,保持其他安装,从而导致Flavors出现问题

答案 2 :(得分:0)

这听起来像你想要的功能,所以Sander得到我的+1。

但有时您可能需要同一产品的不同安装,例如安装在同一服务器上的培训和测试版本。在这些情况下,您需要找到一种不同的方法,here's one我提出了(请参阅回答创建实时,... )。记下有关为每个文件创建组件和通配guid的编辑,因为这简化了过程,即不需要BeforeBuild / AfterBuild技巧。