为了账号安全,请及时绑定邮箱和手机立即绑定

WIX中的guids语法?

WIX中的guids语法?

绝地无双 2019-07-23 15:18:39
WIX中的guids语法?为WIX的wxs文件中的组件提供guid的正确语法是什么?在我找到的大多数样品中Guid="00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6"但是在一些样品中我发现了Guid="{00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6}"我更喜欢第二个版本,因为这是由GuidGen工具直接生成的。但这是对的吗?
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超11个赞

自动guids和默认属性值

除了Bob Arnson的建议:

  • 维克斯的最新版本允许的GUID自动生成的几件事情,最显著的组件GUID。它还包括包,产品和补丁代码。

  • 它还允许从显式定义中跳过一些甚至大多数属性值,因为它们中的大多数可以默认为可预测的值。有关示例,请参阅下面的代码段。

  • 自动生成组件GUID是可能的,因为组件GUID在创建后应保持不变,除非安装路径已更改 - 这在此stackoverflow帖子中有所描述。因此,Wix 根据目标路径和其他因素计算GUID

  • 产品补丁代码通常可以随机创建,因为它们应该是唯一的。

  • 请注意,升级代码是特殊的 - 不应自动生成。在某些情况下,通常希望在版本之间保持稳定,甚至在软件的不同版本和语言之间保持稳定 - 这取决于应用程序设计和版本的实现方式(您可以使用不同的升级代码并仍然实施重大升级,但升级表变得复杂)。

  • 根据经验,升级代码标识“ 相关产品系列 ”,产品代码标识某种安装版本,包代码标识唯一文件。根据定义,具有相同包代码的两个文件被视为同一文件(这可能是神秘错误 - 确保始终自动生成包代码)。

  • 有关自动生成的GUID的详细信息,请查看Wix文档

简化的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>

<Component>
  <File Source="..\File.dll" /></Component>

总之,组合自动的GUID默认属性值产生是维克斯XML源文件更短更容易阅读由于去掉了不少“噪音” -这可以说是使他们不容易出错

  • terser源文件更易于维护且不易出错,因为更容易看到diff工具的更改和文本越少,错误就越少隐藏

  • 同样,由于所有属性的更新不完整,现有XML元素的复制和粘贴可能导致难以发现错误。属性更少,错误更少。当“手动”使用Wix(不使用XML生成器)时,我会复制并粘贴很多。请注意,Wix编译器和链接器会捕获大多数错误,但错误仍然可以隐藏。

  • 然后,可以从编译器和链接器自动神奇地拾取对默认值的任何更改,使它们更容易传播到使用Wix构建的各处的MSI文件。保持源文件尽可能简单总是好的,但并不简单

  • 重写的默认值在源文件中也很突出,您可以添加注释来解释为什么需要非默认值

其他Wix提示在这里,虽然文章可能有点过时。


查看完整回答
反对 回复 2019-07-23
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我已经使用了它们,两者似乎都完美无缺。


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 707 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信