0

背景:

我正在为具有三个配置/SKU(基本、标准、企业等)和两个平台(x86、x64)的应用程序进行设置。不同的配置使用不同的升级代码。

这为您提供了六种不同配置的矩阵。我们目前为每个配置都有单独的 wxs 脚本,但是当手动将文件添加到设置中时,几乎不可能记住在所有配置中都正确执行等等。大多数文件都是共享的(按名称,而不是内容)所以那里是所有六个安装包中的一个文件SomeNamespace.SomeLibrary.dll,但所有六个都可能不同(按平台,有时也按配置)。

所以我的第一个问题是:如何避免保留几个大但几乎相同的设置脚本?

第二个问题:组件 ID:

如果我设法通过自定义收割机或模板创建的片段重用大量 wxs 脚本,我该怎么处理组件 ID?考虑到产品之间没有共享组件并且我只使用 MajorUpgrade,我是否可以为我的组件使用生成的 (*) GUID?生成组件 ID 的另一个选项是使用热量,或手动制作确定性哈希,例如 SHA1(相对安装路径 + 配置 + 平台)`。

大型多配置多平台 WiX 项目的某个地方有很好的例子吗?

4

1 回答 1

0

那么,您是否了解了为什么为您的设置的每个文件使用单独的组件 ID 是个好主意?

以下是了解正在发生的事情的链接:

wix 'KeyPath' 属性是什么?

Wix:每个组件一个文件还是每个组件多个文件?

Wix:在组件、目录、文件、注册表等上使用 KeyPath

至于您的问题,我想说让每个文件都有自己的组件标识符是有意义的(并且将它们放在单独的产品中不会改变这一点)。

ComponentSearch 甚至不需要 ProductCode 来搜索特定组件 - 想想如果您安装了两个产品并且它们对于某些组件都有相同的 GUIDS 会发生什么 - 它会爆炸。

于 2013-11-08T12:15:47.770 回答