26

我的场景是这样的:我希望安装程序完全删除旧版本(除应用程序在其生命周期内创建的文件之外的所有文件)并用新版本替换它。

在我的 Wix 脚本中,我将自动生成的 GUID(星号)用于产品 ID 和包 ID,而我将自己的 GUID 用于始终保持不变的 UpgradeCode。关于我的场景,我不确定是否可以安全地为组件标签使用自动生成的 GUID(星号)?

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

4

1 回答 1

32

是的,自动引导Component/@Guid是安全的。它们非常特殊地完成,以确保 GUID 的生成方式在该组件的不同版本中是稳定的,这样 不会违反组件规则。

此外,如果您不与其他产品共享组件并且您总是使用主要升级并且您提前安排主要升级,那么您根本不必担心组件 GUID,因为两个组件 GUID 定义永远不会启用同时机器。例如,MajorUpgrade元素的默认值正好为您提供:

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

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

于 2013-04-20T13:58:43.110 回答