语法在WIX的GUID?语法在WIX的GUID?(Syntax for guids in WIX?)

2019-05-09 07:28发布

什么是给予的GUID用于在维克斯的WXS文件组件的正确语法?

在大多数的样品,我发现

Guid="00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6"

但在一些样品中,我发现

Guid="{00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6}"

我宁愿第二个版本,因为这是直接由GUIDGEN工具生成。 但它是正确的吗?

Answer 1:

该WiX的编译器两种形式转换为表格Windows安装程序预计(用大括号和大写字母) 。



Answer 2:

自动的GUID和默认属性值

除了鲍勃Arnson的建议是:

  • 维克斯的最新版本允许的GUID自动生成的几件事情,最显著的组件GUID。 它还涉及套餐的,产品展示和补丁码。
  • 它还允许跳过一些,甚至大部分从明确定义的属性值 ,因为它们中的大多数被默认为可预测值。 见下文代码段中的示例代码。
  • 自动生成组件的GUID是可能的,因为组件的GUID应保持一次创建,除非安装路径被改变一样的-这是在描述这个计算器职位 。 因此维克斯计算GUID基于目标路径等因素对。
  • 产品软件包修补程序代码一般可以随机生成的,因为他们只是应该是独一无二的。
  • 需要注意的是升级代码是特殊的- 它不应该被自动生成 。 通常希望保持版本之间,甚至不同的版本和在某些情况下,软件的语言之间的稳定 - 这取决于应用程序的设计和版本是如何实现的(你可以使用不同的升级代码,并且仍然实现了重大升级,但升级表变得复杂)。
  • 由于拇指升级代码规则标识“ 的相关产品系列 ”,产品代码标识某种类型的安装版本和封装代码标识的唯一文件。 两个文件具有相同的封装代码是一样的文件处理定义(这可以区分神秘的错误 - 确保始终自动生成的封装代码)。
  • 检查维克斯文档上自动生成的GUID的详细信息。

简体维克斯XML源文件

正确使用这些自动生成的GUID可以显著简化您的维克斯源文件:

<!-- 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源文件 -这无疑使他们不容易出错

  • 更简洁的源文件更易于维护且不易出错,因为它更容易看到比较工具,什么样的变化和较少的文本存在,错误更少可以隐藏
  • 沿着相同的路线,复制和现有的XML元素的贴会导致很难找到,由于所有属性的不完整的更新错误。 更少的属性,更少的错误。 我复制和使用时维克斯“手动”(不使用XML生成器)粘贴了很多。 请注意,大多数错误是由维克斯编译器和链接回升,但错误仍然可以隐藏。
  • 为默认值进行任何更改然后可以从编译器拿起自动神奇和链接使他们MSI文件到处已建有维克斯传播更加容易。 这是一件好事,让您的源文件尽可能简单,而不是简单
  • 重写的默认设置也站出来在源文件中,还可以添加注释来解释为什么需要非默认值

其他在这里维克斯技巧 ,虽然文章可能有点过时了。



Answer 3:

我用两个人身上,似乎都完全正常工作。



文章来源: Syntax for guids in WIX?