Wix安装多个应用程序
我可能有一个奇怪的要求 我开发了一个msi来安装两个软件。EULA后,必须出现一个带有两个复选框的屏幕,选择其中一个或两个复选框后,必须安装相应的软件 我以前只安装一个软件,从来没有两个Wix安装多个应用程序,wix,windows-installer,installation,Wix,Windows Installer,Installation,我可能有一个奇怪的要求 我开发了一个msi来安装两个软件。EULA后,必须出现一个带有两个复选框的屏幕,选择其中一个或两个复选框后,必须安装相应的软件 我以前只安装一个软件,从来没有两个 如果有任何线索,我将不胜感激。Windows installer有一个“功能”的概念,可以选择安装或省略。如果您已经创建了一个可用的安装程序,那么您的WIX文件中至少有一个元素 只需创建多个元素,然后使用或允许用户选择要安装的功能 内聚和耦合:将应用程序捆绑在一个MSI文件中,可能看起来像一个 好主意。从直觉上
如果有任何线索,我将不胜感激。Windows installer有一个“功能”的概念,可以选择安装或省略。如果您已经创建了一个可用的安装程序,那么您的WIX文件中至少有一个
元素
只需创建多个
元素,然后使用
或
允许用户选择要安装的功能
内聚和耦合:将应用程序捆绑在一个MSI文件中,可能看起来像一个
好主意。从直觉上看,这似乎很好,也很简单。但是,
从现实世界的经验来看,我几乎总是以分手告终
应用程序通过自己的MSI文件安装,我不喜欢
多语言设置(真正的多语言设置很困难,因为在营销和销售部门推动快速发布母语版本(通常是英语版本)时,翻译内容通常还没有准备好)
将应用程序部署在一起真正安全的唯一时间是保证它们:
本地化
,新的先决条件
,等…
)什么可能会在其自身的发布周期中出现?
(立即拆分)。事情往往会突然发生!以下是一些常见的挑战:
缺陷修复:如果只有一个应用程序有缺陷,管理层将只希望交付一个新的MSI,而保持应用程序2不变,并且在安装后无需对两个应用程序执行全新的QA运行。这是为了降低风险,并提供更小的更新,从而更快地进行测试和验证。修补非常复杂,对于MSI文件来说通常更安全,因为MSI文件尽可能简单,没有太多语言、自定义操作或GUI构造
本地化:突然,您需要将应用程序1翻译成意大利语,而应用程序2则不需要翻译。语言支持往往会大大增加设置的复杂性,更不用说它的大小了。你的“漂亮而简单”的微星现在突然变得维护复杂,构建缓慢。如果你需要一个单独的设置,并且你用多种语言翻译它,这也是一件非常痛苦的事情——在所有语言更新都完成之前,你将无法编译RTM版本。我现在可以告诉你,在所有本地化版本准备就绪之前,营销/销售人员不会保留英文版本
QA/UAT:如果应用程序很大,交付2个单独的MSI文件将更容易在不同的QA团队之间分配测试工作,并通过夜间构建等方式交付新的更新
发布时间表:应用程序的发布时间表突然发生变化-应用程序1现在每月更新一次,而应用程序2仅每六个月更新一次。如果不同的用户使用这些应用程序,您如何提供更新?在一个MSI中构建它,并给它一个新的版本号,只让应用程序2的用户重新安装相同的应用程序
将内聚性和耦合性的总体开发人员原则应用于部署包,您将省去很多麻烦。如果应用程序现在或将来可能有自己的生命周期,请立即拆分它们的部署。谁能预见未来
请注意,您通常会将多个MSI文件包装在一个引导程序中,这样即使产品是通过单独的MSI文件安装的,用户仍然只有一个文件可以关联
Wix更新:随着Wix的出现,创建复杂的设置,构建Wix包含文件变得更加容易,这些文件可以编译成多个MSI文件。这实际上成为一种更灵活的合并模块类型。这可能会在将来简化MSI文件的拆分或合并
绝对设置大小:对于单个MSI中可以包含多少组件和文件,存在一些限制。一些细节:
- 更新:WiX允许预处理器构造和刻录捆绑包,可用于拆分大型设置
- 此处的详细说明:(标记朝向底部)
- 关于WiX中不同的“变量类型”:(有很多:
预编译器
,
本地化
,
刻录
,
)等。