BUG: You receive an error message when you try to remove an assembly from the global assembly cache on Windows 2000 Server SP4 (842731)



The information in this article applies to:

  • Microsoft Windows 2000 Server SP4
  • Microsoft Visual Studio .NET (2002), Professional Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2002), Academic Edition
  • Microsoft Common Language Runtime (included with the .NET Framework) 1.0

Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows registry

SYMPTOMS

On a computer that is running Microsoft Windows 2000 Server with Service Pack 4 (SP4), you may experience the following problem when you try to remove an assembly from the global assembly cache, depending on how you try to remove the assembly:
  • If you try to remove the assembly by using the Microsoft .NET Framework Configuration tool, you may receive the following error message:
    Error: There was an error removing <name of assembly>
  • If you try to remove the assembly by using Microsoft Windows Installer, you may receive the following error message:
    Error: Assembly: <name of assembly>, Version=<version of assembly>, Culture=neutral, PublicKeyToken=<public key token of assembly>, Custom=null Unable to uninstall: assembly is required by one or more applications Pending references: SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer>

CAUSE

This problem may occur if one or more registry values have become corrupted.

Both Windows Installer and the .NET Framework Configuration tool verify whether an assembly is being referenced before they try to remove an assembly from the global assembly cache. If the registry indicates that the assembly is not being referenced, the assembly is removed. If the registry indicates that the assembly is being referenced, the assembly is not removed and you receive the error message that is appears in the "Symptoms" section.

WORKAROUND

To work around this problem, you must reset the registry values that have become corrupted.

Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

To reset registry value, follow these steps:
  1. Click Start, click Run, type regedit, and then click OK.
  2. In Registry Editor, locate the following registry key:

    HKEY_CURRENT_USER\Software\Microsoft\Installer\Assemblies\Global

    If the entry that is named (Default) contains a Windows Installer descriptor value, delete this entry.
  3. Locate the following registry key:

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Assemblies\Global

    If the entry that is named (Default) contains a Windows Installer descriptor value, delete this entry.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

REFERENCES

For more information about how to remove assemblies from the global assembly cache, visit the following Microsoft Developer Network (MSDN) Web site:

Modification Type:MinorLast Reviewed:3/7/2006
Keywords:kbvs2005swept kbvs2005doesnotapply kbvs2002sp1sweep kbpending kberrmsg kbBug KB842731 kbAudDeveloper kbAudITPRO