微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在小的更新或较小的升级后未在注册表中更新packagecode?

如何解决为什么在小的更新或较小的升级后未在注册表中更新packagecode?

我已经安装了一个应用程序,并且正在做一个小更新(带有新程序包代码但版本,产品代码升级代码相同的新msi)。该更新工作正常,但我注意到我以后无法卸载该软件(它发出错误消息,提示找不到源文件并要求我找到它。如果我指向原始MSI文件(而不是新MSI文件),卸载就可以了。

我认为这是由于新msi的软件包代码未替换注册表中的旧软件包代码值(HCR \ Installer \ Products \ GUID)。

如何强制安装新的msi更新注册表?我已经尝试过将REINSTALL = ALL与REINSTALLMODE = vomus(vamus和其他几种组合)一起使用。

进行次要升级时会遇到相同的问题(新软件包代码,新版本但产品代码升级代码相同)。

使用Installshield创建的我的msi文件

解决方法

在尝试了几次之后,我放弃了小升级,而通过installshield.setup.exe使用了大升级(新项目代码,新软件包代码,相同的升级代码)。

但是,作为额外的信息,我认为小升级所面临的问题与installshield创建的setup.exe在某种程度上有关。我可以使用.msi文件进行小型升级,并且卸载工作正常(第二个msi文件必须通过cmd行“ msiexec.exe / i \ product.msi REINSTALLMODE = vomus REINSTALL = ALL 安装” ”)。如果您只是尝试通过双击msi Windows来安装更新,则会显示一条消息,表明该产品已安装。

@SteinÅsmul表示,只需进行主要升级即可。

以下是与该问题相关的一些链接:

https://community.flexera.com/t5/InstallShield-Forum/Minor-Upgrade-breaks-Uninstall/td-p/115568

https://docs.revenera.com/installshield24helplib/installshield24helplib.htm#helplibrary/MinorUpgradeRuntime.htm?Highlight=REINSTALLMODE

https://community.flexera.com/t5/InstallShield-Forum/Reinstallmode-is-defaulting-to-vomus/td-p/24565

http://www.msigeek.com/1256/how-do-you-create-a-minor-upgrade-for-an-application-using-installshield https://vincechan.me/2016/05/17/reinstallmode-vs-reinstallmodetext/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。