【问题标题】:Is it safe to use autogenerated GUID on Component tags在组件标签上使用自动生成的 GUID 是否安全
【发布时间】:2013-04-20 12:39:38
【问题描述】:

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

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

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

【问题讨论】:

标签: installation wix windows-installer


【解决方案1】:

是的,自动引导 Component/@Guid 是安全的。它们非常特殊地完成,以确保 GUID 的生成方式在该组件的各个版本中都是稳定的,从而不会违反 Component Rules

此外,如果您不与其他产品共享组件并且您始终使用主要升级并且您提前安排主要升级,那么您不必担心关于组件 GUID 的内容非常多,因为这两个组件 GUID 定义永远不会同时出现在机器上。例如,MajorUpgrade 元素的默认值就是这样:

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

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

【讨论】:

  • 谢谢罗伯!非常感谢 Wix 的原作者抽出时间在这里回答用户问题。
  • 没问题。我们花了很长时间才找到对组件指南稳定的算法。一旦成功,每个人都将获得巨大的胜利。 :)
  • 那么,如果您有一个使用显式 GUIDS 的旧版本安装程序怎么办?那么将其更改为使用* 是否安全? (或者更确切地说,在哪些情况下会导致问题?)
  • 您将获得新的 GUID,并且需要确保您不违反组件规则。
  • 关于旁注“提前安排主要升级”请参阅此处讨论的问题:4227456
猜你喜欢
  • 2013-06-28
  • 1970-01-01
  • 2016-01-15
  • 2012-06-25
  • 2018-02-07
  • 2019-09-12
  • 2011-08-15
  • 2014-11-19
  • 1970-01-01
相关资源
最近更新 更多