为什么在小更新或小升级后没有在注册表中更新 packagecode? [英] Why packagecode is not being updated in registry after a small update or minor upgrade?

查看:28
本文介绍了为什么在小更新或小升级后没有在注册表中更新 packagecode?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我安装了一个应用程序,我正在做一个小的更新(新的 msi 带有新的包代码,但相同的版本、产品代码和升级代码).更新工作正常,但我注意到我以后无法卸载该软件(它给出一个错误,说找不到源文件并要求我找到它.如果我指向原始 MSI 文件 - 而不是新文件 - 那卸载正常).

I have an application installed and I am doing a small update (new msi with new package code but same version, product code and upgrade code). The update works fine but I noticed that I am not able to uninstall the software later (it gives an error saying that cannot find the source file and ask me to locate it. If I point the original MSI file - not the new one - that the uninstall occurs fine).

我认为这是由于新 msi 的包代码没有替换注册表中以前的包代码值 (HCR\Installer\Products\GUID).

I think that is due to the package code of the new msi not replacing the former package code value in the registry (HCR\Installer\Products\GUID).

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

How can I force the installation of the new msi update that registry? I already tried using REINSTALL=ALL with REINSTALLMODE=vomus (vamus, and several other combinations).

我在进行小规模升级时遇到了同样的问题(新包代码、新版本但相同的产品代码和相同的升级代码).

I see the same issue when doing a minor upgrade (new package code, new version but same product code and same upgrade code).

我使用 Installshield 创建的 msi 文件.

My msi file as created using Installshield.

推荐答案

经过几次尝试后,我放弃了使用小升级,而是使用与安装程序一起进行的大升级(新项目代码、新包代码、相同升级代码).来自 installshield 的 exe.

After several tentatives, I gave up using small upgrades and I am using major upgrades (new project code, new package code, same upgrade code) with the setup.exe from installshield.

但作为一个额外的信息,我认为我在小升级时遇到的问题与 installshield 创建的 setup.exe 有某种关系.我能够使用 .msi 文件进行小型升级并且卸载工作正常(必须通过 cmd 行安装第二个 msi 文件msiexec.exe/i \product.msi REINSTALLMODE=vomus REINSTALL=ALL").如果您只是尝试通过双击 msi Windows 来安装更新,您将收到一条消息,表明该产品已安装).

But just as an extra info, I think the issue I was facing with the small upgrade is somehow related with the setup.exe created by installshield. I was able to do small upgrade using .msi files and the uninstall worked fine (the 2nd msi file must be installed via cmd line "msiexec.exe /i \product.msi REINSTALLMODE=vomus REINSTALL=ALL"). If you just try to install update via double click on the msi Windows you will give you a message that the product is already installed).

正如@Stein Åsmul 所建议的那样,只需进行重大升级即可.

As sugested by @Stein Åsmul, just go with the major upgrade.

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

Here are some links that I found related to that issue:

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-installshieldhttps://vincechan.me/2016/05/17/reinstallmode-vs-reinstallmodetext/

这篇关于为什么在小更新或小升级后没有在注册表中更新 packagecode?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆