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

Mar*_*kel 23 installer windows-installer wix

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

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

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

Rob*_*ing 31

是的,自动导航Component/@Guid是安全的.它们是非常专门地完成的,以确保以一种在该Component的版本之间保持稳定的方式生成GUID,从而 不违反组件规则.

此外,如果您不与其他产品共享组件并且您始终使用主要升级并且您提前安排主要升级,那么您根本不必担心组件GUID,因为两个组件GUID定义永远不会打开机器在同一时间.例如,MajorUpgrade元素的默认值为您提供了以下内容:

<MajorUpgrade DowngradeErrorMessage='A newer version of [ProductName] is installed.' />
Run Code Online (Sandbox Code Playgroud)

所以,答案是"是".:)

  • 谢谢Rob!我非常感谢Wix的原作者有时间在这里回答用户的问题. (9认同)