How to deploy an assembly to the target computer global assembly cache (324168)



The information in this article applies to:

  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio .NET (2003), Academic Edition
  • Microsoft Visual Studio .NET (2003), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2003), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2003), Professional Edition
  • Microsoft Visual Studio .NET (2002), Academic Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2002), Professional Edition
  • Microsoft Visual Basic .NET (2003)
  • Microsoft Visual Basic .NET (2002)
  • Microsoft Visual C++ .NET (2003)
  • Microsoft Visual C++ .NET (2002)
  • Microsoft Visual C# .NET (2003)
  • Microsoft Visual C# .NET (2002)
  • Microsoft Visual J# .NET (2003)
  • Microsoft Visual J# .NET (2002)

This article was previously published under Q324168

SUMMARY

This step-by-step article describes how to deploy an assembly to the global assembly cache of the target computer. This makes the target computer shareable in other applications. When you do this, strong name signatures must be verified only one time. Also, by loading an assembly from the same location on the disk, you take advantage of the code sharing behavior that the operating system provides and the working set improves.

Step by step procedure

Use Visual Studio .NET to create a setup project, and then deploy the assembly to the target computer global assembly cache. To do this, follow these steps:
  1. To the Solution that contains the project, add a new Setup Project that references to the assembly.
  2. Right-click File System on Target Machine, click Add Special Folder, and then click Global Assembly Cache Folder.
  3. By default, the assembly is inserted in the Application Folder (by default, it is a side-by-side installation). Drag the assembly to the Global Assembly Cache Folder.
  4. Build the Setup Project.

Remarks

If you rebuild the assembly later, and you change its Version Minor but you do not change its Public Key Token, the relating strong name will be different. Because of this, if you follow steps 1 through 4 to deploy other applications that reference to the rebuilt assembly (which is contained in the package), the target global assembly cache will contain both assemblies.

If the assembly is already strong-named, you can deploy another application in the target global assembly cache. If the assembly is not strong-named, you receive the following message from Task List:
Assembly AssemblyName must have a shared name to be installed globally

REFERENCES

For more information about assemblies and the global assembly cache, visit the following Microsoft Web sites:

Simplifying Deployment and Solving DLL Hell with the .NET Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-us /dndotnet/html/dplywithnet.asp

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

315682 How to install an assembly into the global assembly cache in Visual Studio .NET


Modification Type:MajorLast Reviewed:9/14/2005
Keywords:kbHOWTOmaster KB324168 kbAudDeveloper