gpt4 book ai didi

windows-installer - 是什么导致 MSI 更新无法更新安装程序中的组件?

转载 作者:行者123 更新时间:2023-12-03 01:22:45 25 4
gpt4 key购买 nike

(编辑:问题已更改。)

我有一个带有由 InstallShield 2010 构建的安装程序的产品,所有帐户都显示安装得就像"new"安装一样好。

我会定期更改安装的内容,因为我会通过错误修复等更新这个或那个组件。在那些时候,我尝试更改已更新文件的元数据中的版本号,但有些组件是不可能的。当然,它们总是以更新的修改日期结束。我还更改了 MSI 数据中产品的版本号。但是,我并没有每次都更改包代码。

当某些用户在已存在我的产品的系统上运行安装程序时,系统会提示他们更新模式 UI(“您想更新吗?”等),并且安装程序似乎已完成。但是,更新的文件并不总是覆盖旧文件,直到之后运行“修复”安装,特别是如果版本号没有更改,并且现在有证据表明使用“强制覆盖”标记组件的内容不会不要改变这种行为。

这是怎么回事?有什么办法可以让我得到更好的结果吗?每当我修改产品或更新组件时,是否需要更改软件包代码? (编辑:每次我构建版本时,包代码都会发生变化,因此这不是问题的原因。)

编辑:这是一个更新用户界面,但更新后的维护才是真正完成所需的安装。

最佳答案

您当然应该在每次构建时更改 PackageCode。事实上,默认情况下,InstallShield 有一个build设置可以执行此操作。

事实上,MSDN 帮助主题 Package Codes说:

不同的 .msi 文件不应具有相同的包代码。更改软件包代码非常重要,因为它是安装程序用来搜索和验证给定安装的正确软件包的主要标识符。如果在未更改包代码的情况下更改了包,并且安装程序仍可以访问这两个包,则安装程序可能不会使用较新的包。

这就是您获得维护 UI 体验而不是升级体验的原因。

现在,一旦您开始执行此操作,您接下来必须考虑是否要支持次要升级、主要升级或补丁来为您的应用程序提供服务。在将安装程序投入生产之前,了解这一点并测试您的策略非常重要。

关于windows-installer - 是什么导致 MSI 更新无法更新安装程序中的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4696254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com