为 WIX 的 wxs 文件中的组件提供 guid 的正确语法是什么?
在我发现的大多数样本中
Guid="00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6"
但在一些样本中我发现
Guid="{00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6}"
我更喜欢第二个版本,因为这是由 GuidGen 工具直接生成的。但这是正确的吗?
组件 GUID:关于组件 GUID 以及何时应更改:在 wix 中更改我的组件 GUID? https://stackoverflow.com/questions/1405100/change-my-component-guid-in-wix/1422121#1422121
自动引导和默认属性值
除了鲍勃·阿恩森的建议之外:
- Wix 的最新版本允许GUIDs to be 自动生成对于很多事情来说,最重要的是组件 GUID。它还涵盖了软件包、产品和补丁代码。
- 它还允许从显式定义中跳过一些甚至大多数属性值因为它们中的大多数可以默认为可预测的值。请参阅下面的代码片段作为示例。
- 可以自动生成组件 GUID,因为组件 GUID 在创建后应保持不变,除非安装路径发生更改 - 这在中进行了描述这个 stackoverflow 帖子 https://stackoverflow.com/questions/1405100/change-my-component-guid-in-wix。因此维克斯计算 GUID https://stackoverflow.com/a/5834288/129130基于目标路径和其他因素。
-
Product, package and 补丁代码通常可以随机创建,因为它们应该是唯一的。
- 请注意,升级代码很特别——它不应该自动生成。通常希望在版本之间保持稳定,甚至在某些情况下在软件的不同版本和语言之间保持稳定 - 这取决于应用程序设计以及版本的实现方式(您可以使用不同的升级代码并仍然实现主要升级,但是升级表变得复杂)。
- 根据经验升级代码识别一个“相关产品系列”,产品代码标识某种已安装的版本,包代码标识唯一的文件。根据定义,具有相同包代码的两个文件被视为同一文件(这可能会出现神秘错误 - 确保始终自动生成包代码)。
- 检查Wix 文档 http://wixtoolset.org/documentation/manual/v3/howtos/general/generate_guids.html有关自动生成的 GUID 的详细信息。
简化的 Wix XML 源文件
正确使用这些自动生成的 GUID 可以显着简化您的 Wix 源文件:
<!-- Sample guid below, do not copy paste -->
<Component Id="File.dll" Guid="{12345678-1234-1234-1234-123456789ABC}">
<File Id="File.dll" Name="File.dll" KeyPath="yes" Source="..\File.dll" />
</Component>
versus
<Component>
<File Source="..\File.dll" />
</Component>
综合起来,组合自动引导和默认属性值生成的 Wix XML 源文件是shorter and 更容易阅读由于去除了很多“噪音”-这可以说使他们不易出错:
- 更简洁的源文件更容易维护并且更不容易出错,因为使用 diff 工具更容易看到发生了什么变化,并且存在的文本越少,隐藏的错误就越少
- 同样,复制和粘贴现有 XML 元素可能会由于所有属性更新不完整而导致难以发现错误。属性越少,错误就越少。当我“手动”使用 Wix(不使用 XML 生成器)时,我会进行大量复制和粘贴。请注意,大多数错误都会被 Wix 编译器和链接器发现,但错误仍然可以隐藏。
- 对默认值的任何更改都可以从编译器和链接器中自动获取,从而使它们更容易传播到使用 Wix 构建的任何地方的 MSI 文件。保持源文件尽可能简单总是好的,但不能更简单
- 覆盖的默认值在源文件中也很突出,您可以添加注释来解释为什么需要非默认值
Other 维克斯提示在这里 https://stackoverflow.com/questions/471424/wix-tricks-and-tips,尽管这篇文章可能有点过时了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)