[英]WiX project allowing side-by-side installation
我正在为我们的产品创建MSI 。 我希望产品能够并排安装。 这样我就可以先安装1.0.0,以后可以添加1.0.1,这样两个版本都安装好了。
我正在使用 WiX 创建 msi,并想知道如何在 Wix 中完成此操作? 例如
问候,马丁
您应该能够只更改顶级产品代码和升级代码 GUID 以使您的两个产品完全不相关,并使用 Productversion 来识别版本。 您可以在产品之间共享组件指南(这就是合并模块的工作方式),这样您的安装程序(组件定义)的内容就不需要调整并且仍然可以共享。
您面临的主要挑战将是确保两个分离的产品不会相互干扰,例如通过具有相同的默认安装文件夹、开始菜单条目和相同的添加/删除程序条目。 您可以通过在 ProductName 属性中包含产品版本号来实现这一点,这在您的安装 UI 中可能看起来有点技术性,但并非闻所未闻。
关于你的第一个问题:不,你不需要。
但为什么?
在我的并行场景中,我很难理解 windows 安装程序规则。 您确实需要了解组件规则(包括何时需要对它们进行制动)和关键路径的概念。 WiX 并没有抽象出这些方面。
这个答案确实已经突出了可能的干扰。 让我们考虑几个例子。
不直接支持两个版本共享的资源。 一个突出的例子是使用 ProgID 使用文件扩展名,如下所示。
如果您更改 GUID(在使用“*”GUID 时也会发生),则在卸载任一版本时将删除扩展。
如果您不更改 GUID,将保留扩展名,但指向最近安装的版本。 您可以选择 go 作为两个恶魔中的较小者,至少支持用户按照安装它们的顺序卸载版本的场景。
这里有一个陷阱:扩展需要是组件的关键路径。 这使得 ProgID 元素的使用在并行场景中存在问题,因为如果您没有将 ProgID 元素放在与引用文件相同的组件中,您将收到 ICE69 警告。 此外,它是 WiX 的实现细节,它生成的注册表项将是关键路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.