卸载不会删除注册表项


0

我创建了两个具有不同产品代码和版本的MSI(mypkg1.0.0和mypkg2.0.0)。两个MSI分别在安装期间创建下面的注册表项。创建注册表项的两个MSI的组件代码是相同的。

mypkg1.0.0

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\{companyname}\1.0

mypkg2.0.0

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\{companyname}\2.0

我已成功安装了两个MSI,并创建了以上注册表项。如果我卸载两个已安装的MSI中的任何一个,则不会删除相应的注册表项。仅针对上次卸载的MSI删除了注册表项。

场景:1
mypkg2.0.0卸载,HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node {companyname} \ 2.0 =>没有删除

mypkg1.0.0卸载,HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node {companyname} \ 1.0 =>删除

场景:2
mypkg1.0.0卸载,HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node {companyname} \ 1.0 =>没有删除

mypkg2.0.0卸载,HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node {companyname} \ 2.0 =>删除

如果安装了两个软件包,为什么不删除注册表项。虽然产品代码和版本不同,我们是否需要更改组件代码?


如果您创建注册表项,则必须删除注册表项。创建这些键的唯一方法是首先创建它们。应用程序不必使用注册表来运行,大多数应用程序根本不使用注册表。
Ramhound

Answers:


2

如果您已经开发了自己的软件并且已经构建了一个安装程序并尝试安装它,那么您必须通过源代码来解释它无法正常工作的原因。请进一步详细说明,提交正确答案。

注册表项通过软件进行注册表编辑添加,因此如果它无法正常工作,则注册表中可能存在问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.