从WIX安装程序的程序集版本创建种子GUID

时间:2017-09-18 04:30:09

标签: c# visual-studio wix guid

有什么方法可以基于WIX .wxs项目文件中的字符串来生成GUID?

<Product Id="Seeded GUID from $(var.MajorVersion)$(var.MinorVersion)" 
       Name="PCMTec" 
       Language="1033" 
       Version="$(var.BuildVersion)" 
       Manufacturer="weeooowwwww" 
       UpgradeCode="This GUID never changes">
</Product>

目标是当我更改我的程序主要/次要版本(例如major.minor.built.revision)时,它会创建一个新的GUID,但是如果只有它没有的内置/修订版本号。

我可以手动执行此操作,但我应该可以自动执行此操作。

编辑:如果按下像这样的GUID,有什么问题吗?

&#34; 9AAADB83-ACF1-4DB8-BE8B-69C8061A $(var.GUIDInsert)&#34;

在0.35版本的情况下GUIDInsert将等于&#34; 0035&#34;。最后4个十六进制数字是节点ID的一部分(例如GUID的随机/唯一部分),这仍然符合GUID应该是什么?

例如,末尾附加的版本号 9AAADB83-ACF1-4DB8-BE8B-69C8061A的 0035

1 个答案:

答案 0 :(得分:0)

这样做并没有什么本质上的错误,但是一旦你必须从9999翻到0000,它将无法实现。当然你可能永远不会达到这么多版本但仍需要考虑。当然,您只需将其更改为5位数即可。

但我想知道你为什么要这样做。甚至不应该这样做。该GUID应该代表“产品”。如果您使用不同的二进制文件(来自不同的构建版本/修订版本),那么生成的msi与之前构建的版本相同吗?

您尝试解决的问题是由使用Product Id="*"自动生成的GUID引起的吗?