我的情况是这样的:我希望安装程序完全删除旧版本(除应用程序在其生命周期中创建的文件之外的所有文件)并将其替换为新版本。
在我的 Wix 脚本中,我使用自动生成的 GUID(星号)作为产品 ID 和包 ID,而我使用我自己的 GUID 作为 UpgradeCode,它始终保持不变。对于我的场景,我不确定是否可以安全地将自动生成的 GUID(星号)用于组件标签?
到目前为止,我一直在使用 NSIS。我想尝试 Wix 但有点怀疑,因为论坛上的人说你需要大约 30 天才能学会它,而一个人可以在 1-2 天内开始使用 NSIS。但是,对于典型用户需要的标准安装,我花了 2 天时间才使用 Wix 获得了一个非常好的安装程序包。如果您有一点 xml 背景知识,您应该不用担心。感谢 Rob 和所有其他贡献者创建 Wix!
最佳答案
是的,自动引导 Component/@Guid
是安全的。它们是非常特别地完成的,以确保以在该组件的发行版中稳定的方式生成 GUID,以便 Component Rules不被侵犯。
此外,如果您不与其他产品共享组件 和 您总是使用重大升级 和 您尽早安排主要升级,那么您根本不必担心组件 GUID,因为这两个组件 GUID 定义永远不会同时出现在机器上。例如,MajorUpgrade
的默认值element 给你的正是这个:
<MajorUpgrade DowngradeErrorMessage='A newer version of [ProductName] is installed.' />
所以,答案是"is"。 :)
关于installation - 在组件标签上使用自动生成的 GUID 是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120473/