WIX中的guids语法?

WIX中的guids语法?

为WIX的wxs文件中的组件提供guid的正确语法是什么?

在我找到的大多数样品中

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

但是在一些样品中我发现了

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

我更喜欢第二个版本,因为这是由GuidGen工具直接生成的。但这是对的吗?


绝地无双
浏览 714回答 3
3回答

萧十郎

自动guids和默认属性值除了Bob Arnson的建议:维克斯的最新版本允许的GUID是自动生成的几件事情,最显著的组件GUID。它还包括包,产品和补丁代码。它还允许从显式定义中跳过一些甚至大多数属性值,因为它们中的大多数可以默认为可预测的值。有关示例,请参阅下面的代码段。自动生成组件GUID是可能的,因为组件GUID在创建后应保持不变,除非安装路径已更改 - 这在此stackoverflow帖子中有所描述。因此,Wix&nbsp;根据目标路径和其他因素计算GUID。产品,包和补丁代码通常可以随机创建,因为它们应该是唯一的。请注意,升级代码是特殊的 -&nbsp;不应自动生成。在某些情况下,通常希望在版本之间保持稳定,甚至在软件的不同版本和语言之间保持稳定 - 这取决于应用程序设计和版本的实现方式(您可以使用不同的升级代码并仍然实施重大升级,但升级表变得复杂)。根据经验,升级代码标识“&nbsp;相关产品系列&nbsp;”,产品代码标识某种安装版本,包代码标识唯一文件。根据定义,具有相同包代码的两个文件被视为同一文件(这可能是神秘错误 - 确保始终自动生成包代码)。有关自动生成的GUID的详细信息,请查看Wix文档。简化的Wix XML源文件正确使用这些自动生成的GUID可以显着简化您的Wix源文件:<!--&nbsp;Sample&nbsp;guid&nbsp;below,&nbsp;do&nbsp;not&nbsp;copy&nbsp;paste&nbsp;--><Component&nbsp;Id="File.dll"&nbsp;Guid="{12345678-1234-1234-1234-123456789ABC}"> &nbsp;&nbsp;<File&nbsp;Id="File.dll"&nbsp;Name="File.dll"&nbsp;KeyPath="yes"&nbsp;Source="..\File.dll"&nbsp;/></Component>与<Component> &nbsp;&nbsp;<File&nbsp;Source="..\File.dll"&nbsp;/></Component>总之,组合自动的GUID和默认属性值产生是维克斯XML源文件更短和更容易阅读由于去掉了不少“噪音”&nbsp;-这可以说是使他们不容易出错:terser源文件更易于维护且不易出错,因为更容易看到diff工具的更改和文本越少,错误就越少隐藏同样,由于所有属性的更新不完整,现有XML元素的复制和粘贴可能导致难以发现错误。属性更少,错误更少。当“手动”使用Wix(不使用XML生成器)时,我会复制并粘贴很多。请注意,Wix编译器和链接器会捕获大多数错误,但错误仍然可以隐藏。然后,可以从编译器和链接器自动神奇地拾取对默认值的任何更改,使它们更容易传播到使用Wix构建的各处的MSI文件。保持源文件尽可能简单总是好的,但并不简单重写的默认值在源文件中也很突出,您可以添加注释来解释为什么需要非默认值其他Wix提示在这里,虽然文章可能有点过时。

牛魔王的故事

我已经使用了它们,两者似乎都完美无缺。
打开App,查看更多内容
随时随地看视频慕课网APP