在Component标签上使用自动生成的GUID是否安全

时间:2013-04-20 12:39:39

标签: installer wix windows-installer

我的方案是:我希望安装程序完全删除旧版本(除了应用程序在其生命周期中创建的文件之外的所有文件)并将其替换为新版本。

在我的Wix脚本中,我使用自动生成的GUID(星号)表示产品ID和包ID,而我使用自己的GUID进行UpgradeCode,它始终保持相同。我不确定我是否可以安全地为组件标签使用自动生成的GUID(星号),就我的情况而言?

到目前为止,我使用的是NSIS。我想尝试Wix,但有点怀疑,因为论坛上的人说你需要大约30天才能学习它,而人们可以在1-2天内开始使用NSIS。但是,对于典型用户需要的标准安装,使用Wix我需要2天才能获得一个非常好的安装程序包。如果您在xml中有一点背景,那么您可能不必担心。感谢Rob和所有其他贡献者创建了Wix!

1 个答案:

答案 0 :(得分:31)

是的,自动导航Component/@Guid是安全的。它们是非常特别的,以确保GUID的生成方式在该组件的各个版本之间保持稳定,从而不会违反Component Rules

此外,如果您不与其他产品共享组件,您总是使用主要升级,您可以提前安排主要升级,那么您不必担心关于组件GUID很多,因为两个组件GUID定义永远不会同时在计算机上。例如,MajorUpgrade元素的默认值就是这样:

<MajorUpgrade DowngradeErrorMessage='A newer version of [ProductName] is installed.' />

所以,答案是“是”。 :)