how to manually remove MSI installation?

2020-02-18 05:21发布

问题:

I am learning VS 2008 setup project to create install for our C# application. I made a mistake trying to delete the exe itself during the uninstall. Now I manually deleted the exe file but the entry still in Add Remove Program list. I try to install a fixed newer version but msi doesn't allow me to do so.

How can I remove the old version manually (i can use regedit, no problem)? I am using XP machine. thanks

EDIT: After I removed its subkey in that uninstall registry entry, I still cannot install my newer version.

回答1:

Use msiexec /x {guid product code}. If your MSI database got screwed up and this doesn't work, try msizap.



回答2:

If this is a proper small update / minor upgrade .msi file to fix an earlier version which couldn't uninstall, just install it with msiexec /i updated.msi REINSTALLMODE=vomus (and maybe also REINSTALL=ALL). The v of vomus will have Windows Installer replace the old package with the new, and then you can uninstall normally.

But of course all this is unnecessary these days with the ability to test on a virtual machine you can just revert...



回答3:

Remove your install entry in registry here. You might need to find out the GUID from your setup project.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall OR
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Check also DisplayName, it can be helpful when your product has defined friendly name.