WiX项目允许并排安装
我正在为我们的产品创建一个MSI。我希望该产品能够并排安装。所以我可以先安装1.0.0,然后再添加1.0.1,这样两个版本都可以安装 我正在使用WiX创建msi,想知道如何在WiX中实现这一点?比如说WiX项目允许并排安装,wix,windows-installer,side-by-side,Wix,Windows Installer,Side By Side,我正在为我们的产品创建一个MSI。我希望该产品能够并排安装。所以我可以先安装1.0.0,然后再添加1.0.1,这样两个版本都可以安装 我正在使用WiX创建msi,想知道如何在WiX中实现这一点?比如说 我是否需要为所有组件创建新的guid 我应该如何将版本信息添加到wix中,还是完全重命名我的产品 如何创建项目,以便发布新版本需要对wix项目进行最小更改 您好, Martijn您应该能够通过更改顶级productcode和UpgradeCode GUID使两个产品完全不相关,并使用Produ
- 我是否需要为所有组件创建新的guid
- 我应该如何将版本信息添加到wix中,还是完全重命名我的产品
- 如何创建项目,以便发布新版本需要对wix项目进行最小更改
Martijn您应该能够通过更改顶级productcode和UpgradeCode GUID使两个产品完全不相关,并使用Productversion来识别版本。您可以在产品之间共享组件guid(这就是合并模块的工作方式),这样安装程序的核心(组件定义)就不需要调整,仍然可以共享
您面临的主要挑战是确保这两个解耦的产品不会相互干扰,例如,使用相同的默认安装文件夹、开始菜单项和相同的添加/删除程序项。您可以通过在ProductName属性中包含产品版本号来实现这一点,这在您的安装UI中看起来有点技术性,但这并非闻所未闻。关于您的第一个问题:不,您不需要。
但是为什么呢 在我的并行场景中,我很难理解windows installer规则。 你真的需要理解和的概念。WiX不会抽象这些方面 已突出显示可能的干扰。 让我们考虑几个例子。
- 不需要更改具有应用程序可执行文件的组件的GUID。这打破了组件规则,但它可以工作,因为产品的两个版本都以互不干扰的方式定义相同的组件
- 不直接支持两个版本共享的资源。一个突出的例子是使用ProgIDs使用文件扩展名,如图所示
如果更改GUID(在使用“*”GUID时也会发生),则在卸载任一版本时将删除扩展名
如果不更改GUID,则将保留扩展,但指向最近安装的版本。您可以将此选项作为两个魔鬼中的较小者使用,至少支持这样一种情况,即用户按照安装它们的相同顺序卸载版本。
这里有一个陷阱:扩展需要是组件的关键路径。这使得并行场景中ProgID元素的使用出现问题,因为如果您没有将ProgID元素与引用的文件放在同一组件中,您将收到ICE69警告。此外,它是WiX的一个实现细节,它生成的注册表项将是密钥路径