installation - 在组件标签上使用自动生成的 GUID 是否安全

标签 installation wix windows-installer

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

在我的 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/

相关文章:

installation - http ://timestamp. geotrust.com/tsa 不再可用于 SignTool?

wix - 如何确保在 Windows Installer AdminInstall 期间安装功能

wix - 使用Windows-Installer了解GUIDS,更新和补丁

installation - Wix - 构建安装包时出错 - ERROR CNDL0200(未处理的扩展元素)

google-chrome - 如何防止谷歌浏览器阻止我的安装程序包

asp.net - 如何知道服务器中是否安装了asp.net 3.5 sp1和asp.net mvc?

wix - 我可以在安装结束时使用 WiX 启动我的应用程序,但我无法让我的应用程序在前台运行

mysql - 如何使用 Wix Installer 选择安装(或不安装)某些功能?

ASP.NET 应用程序 MSI 安装程序多个实例

python - 有一种快速的方法可以知道 Anaconda 中是否安装了一个包