卸载不会删除注册表项

卸载不会删除注册表项

我创建了两个具有不同产品代码和版本的 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 => 已删除

为什么安装了两个包后注册表项不会被删除。产品代码和版本不同,是否需要更改组件代码?

答案1

如果您开发了自己的软件并构建了安装程序并尝试安装它,那么您必须查看源代码以了解它为何无法正常工作。此外,请详细说明以提交正确的答案。

注册表项是通过软件的注册表编辑添加的,因此如果它不能正常工作,则注册表可能存在问题。

相关内容