尝试应用修补程序或更新时出现的错误消息:"Error 9002. Microsoft Visual Studio .NET 2003 Hotfix (KBxxxxxx) cannot be installed because you have one or more hotfixes installed.Remove them and try again."

重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先对其进行备份,并且一定要知道在出现问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何备份和还原 Windows XP 和 Windows Vista 中的注册表
症状
当尝试应用修补程序或更新时,可能会接收到类似下面的错误消息:
Error 9002. Microsoft Visual Studio .NET 2003 Hotfix (KBxxxxxx) cannot be installed because you have one or more hotfixes installed.Remove them and try again.
当尝试为以下任意一种产品应用修补程序或更新时,可能会接收到上述错误消息:
  • Microsoft .NET Framework 1.1 或 .NET Framework 1.0
  • Microsoft Visual Studio .NET 2003 或 Visual Studio .NET 2002
原因
在下列情况下可能会出现此问题:
  • 为产品应用了未并入的修补程序

    未并入的修补程序是指不包含在 Service Pack 或产品发布中的修补程序或更新。此类修补程序旨在解决客户使用产品时遇到的特定问题。不过,此修补程序不适用于常规用法。
  • 您已应用了一个更新,该更新故意阻止您应用修补程序或更新。

    某些更新由于技术性原因(例如,更新间的相关性)有意阻塞其他更新。
替代方法
要解决此问题,请使用下列方法之一。

方法 1

删除那些阻止您试图应用修补程序或更新的修补程序或更新。

通常,可以使用“控制面板”中的“添加或删除程序”项来删除修补程序或更新。要确定必须删除的修补程序或更新,请按以下步骤操作:
  1. 打开无法应用的修补程序或更新的 Windows Installer (.msi) 日志。如果没有该日志或无法找到该日志,请使用下面的命令尝试再次应用修补程序或更新:
    hotfix_or_update_name.exe /L:log_name.log
  2. 在步骤 1 中找到或创建的日志文件中,查找包含类似下面文本的行:
    DDPatch:M937058.BlockingPatches=U822550;U832138;U8321381031;U842936;U883661;U8321381036
    这些编号对应于阻塞修补程序或更新。编号以 U 或 M 开头。

    如果无法在日志中找到任何阻塞修补程序或更新,请转至步骤 4。
  3. 使用“控制面板”中的“添加或删除程序”项删除在步骤 2 中找到的列表中出现的所有修补程序和更新。然后,再次尝试应用在遇到此问题时曾尝试应用过的修补程序或更新。
  4. 如果在日志中无法找到任何阻塞修补程序或更新,请查看“控制面板”的“添加或删除程序”项中的列表以确定必须删除的修补程序或更新。为此,请按照下列步骤操作:
    1. 打开“控制面板”中的“添加或删除程序”项。
    2. 查找与试图进行更新的产品所对应的所有列出的修补程序和更新。
    3. 删除最后一次应用的修补程序或更新。如果已经应用了多个修补程序和更新,并且不知道最后应用的是哪个修补程序或更新,您可以先删除编号最大的修补程序或更新。
    4. 删除修补程序或更新后,尝试应用在您遇到此问题时曾尝试应用过的修补程序或更新。如果仍出现问题,则请重复步骤 c 来删除下一个最新的修补程序或更新。然后,再次尝试应用在您遇到此问题时曾尝试应用过的修补程序或更新。
    注意:对于一些修补程序和更新,您可能必须重复步骤 c 和 d 才能成功应用在遇到此问题时曾尝试应用过的修补程序或更新。

方法 2

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。

删除指示存在阻塞修补程序或更新的注册表项。下表列出了在“症状”一节提及的产品的注册表项。
编号 产品 注册表项
1 Microsoft .NET Framework 1.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.0
2 Microsoft .NET Framework 1.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.1
3 Microsoft Visual Studio .NET 2002
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Visual Studio\7.0
4 Microsoft Visual Studio .NET 2003
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Visual Studio\7.1
要删除指示存在阻塞修补程序或更新的注册表项,请按以下步骤操作:
  1. 单击“开始”,单击“运行”,键入 regedit.exe,然后单击“确定”。
  2. 根据要尝试为其应用修补程序或更新的产品,在上面显示的表中确定相关联的注册表项。
  3. 在注册表编辑器中,找到相应的注册表项。
  4. 查找阻塞修补程序或更新的注册表项。有关如何确定必须要为其删除注册表项的阻塞修补程序或更新的信息,请参见方法 1 中的步骤 1 和 2。
    • 示例 1:
      您正尝试为 Microsoft Visual Studio .NET 2003 应用更新 937058。但是,此更新由于之前应用了更新 842936 而被阻塞。在这种情况下,您必须查找到以下注册表项之一:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Visual Studio\7.1\M842936

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Visual Studio\7.1\U842936
    • 示例 2:
      您正尝试为 Microsoft .NET Framework 1.0 应用更新 928367。但是,此更新由于之前应用了更新 886906 而被阻塞。在这种情况下,您必须查找到以下注册表项之一:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.0\M886906

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.0\U886906
  5. 找到了相应的注册表项之后,右键单击该相应注册表项,然后单击“删除”。例如,右键单击“M842936”。
  6. 退出注册表编辑器。
有关先前应用的未并入修补程序的更多信息,或有关被先前应用的修补程序或更新所阻塞的更新的更多信息,请联系 Microsoft 客户支持服务。要获取 Microsoft 客户支持服务电话号码和支持费用信息的完整列表,请访问下面的 Microsoft 网站:
属性

文章 ID:942380 - 上次审阅时间:12/03/2007 18:58:49 - 修订版本: 1.4

Microsoft .NET Framework 1.1 Service Pack 1, Microsoft .NET Framework 1.0 Service Pack 3, Microsoft Visual Studio .NET 2003 Service Pack 1, Microsoft Visual Studio .NET (2002), Enterprise Architect Edition SP1, Microsoft Visual Studio .NET 2002 企业级开发版, Microsoft Visual Studio .NET 2002 专业版

  • kbtshoot kbexpertisebeginner kbexpertiseinter kbexpertiseadvanced kbsecurity kbbug kbpubtypekc KB942380
反馈