首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卸载未删除注册表项-如何查找原因

卸载未删除注册表项-如何查找原因
EN

Stack Overflow用户
提问于 2014-04-07 20:45:38
回答 2查看 2.4K关注 0票数 0

我为一个产品构建了一个安装项目(来自Visual Studio2010的vdproj)。在我的测试机器上卸载时,它不会删除它应该删除的所有内容。具体地说,它不会删除它在安装中创建的一些注册表项。

一个类似的项目进行了清理;我比较了这两个项目,没有发现错误,所以我假设windows installer认为这样做有一个很好的理由。我需要让他忘记原因,这样我的产品才能有一个干净的测试基础,而不需要重新安装windows。

所以我尝试了手动清理:-卸载->注册表项未被删除-注册表编辑->清理手动-安装->注册表项由我的微星创建-卸载->注册表项仍未删除。

我认为在安装程序数据库中的某个地方有一个(可能已过时的)引用,它说:包含这些条目的组件仍被此功能使用,因此您不能删除它们。也许我有重复的组件键,因为我复制了一个安装项目,所以我得到了这种混淆。

我想我也许能够找到我的注册表项所属的组件和功能ID,但是我如何在安装程序数据库中修复这个问题呢?我该去哪里找呢?有什么工具可以帮到我吗?这是Windows 7旗舰版。

EN

回答 2

Stack Overflow用户

发布于 2014-04-07 23:56:30

混淆组件ids可能会导致这种情况,是的。您可以运行这样的vbscript来标识所有组件it及其产品所有者,使其成为vbs文件。另一个原因可能是您曾经将其标记为永久。这是对象上的系统设置,而不仅仅是构建时的项目设置,所以如果它曾经安装为permanent true,它将保持安装状态。

当这将guids、所有者和路径写入文件时,如果它是注册表路径,它将以2位数字开头以表示注册表位置。

代码语言:javascript
复制
Option Explicit
Public installer, fullmsg, comp, a, prod, fso, pname, ploc, pid, psorce

Set fso = CreateObject("Scripting.FileSystemObject")
Set a = fso.CreateTextFile("comps.txt", True)

' Connect to Windows Installer object
Set installer = CreateObject("WindowsInstaller.Installer")

a.writeline ("MSI Components")

on error resume next

For Each comp In installer.components

   a.writeline (comp & " is used by the product:")

   for each prod in Installer.ComponentClients (comp) 

      pid = installer.componentpath (prod, comp) 

      pname = installer.productinfo (prod, "InstalledProductName")

      a.Writeline ("     " & pname & " " & prod & "and is installed at " & pid)

   Next

Next
票数 2
EN

Stack Overflow用户

发布于 2014-04-08 04:32:13

Phil已经提供了一个非常好的答案,提供了所需的调试信息。我只想补充说,我倾向于只给有问题的组件一个新的GUID,然后再试一次。

如果所讨论的设置尚未上线并且仅存在于您的测试计算机上,则应仅执行此操作。

(如果这起作用,那是因为新的GUID认为它“拥有”注册表项,并在卸载时将其删除。像这样的GUID更改会导致升级后丢失文件和设置-在这种情况下,更改GUID只是一个技巧,如果设置还没有人使用,您可以使用-否则永远不应该这样做)。

这是另一个描述组件GUID问题的答案。什么时候应该改变它们,为什么要改变,结果会是什么:Change my component GUID in wix?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22912822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档