I've just discovered how I add a reference to an assembly in the GAC from a C# solution using VS2005.
I find it rather incredible that it is this difficult to do. And I really don't think I've missed anything here.
1. Go into Registry and disable the GAC cache viewer:
HKLM\SOFTWARE\Microsoft\Fusion, DisableCacheViewer- set to non zero.
You have to do this as the cache viewer prevents you from copying assemblies out from the GAC.
2. Go into the GAC folder and copy the assemblies you want to reference to somewhere else on your machine.
3. Add the reference from your solution by browsing to the copy of the assembly you made in step 2.
That's ridiculous. I thought the idea of the GAC was to use it for shared assemblies. Why is it so difficult to use these assemblies from VS 2005

How to reference GAC assemblies using VS2005- how funny is this.
rlasker3
Lance Hunt
If you want to reference an assembly that is not in the GAC, just click the browse button and browse to it. Just make sure that you include these referenced assemblies in your installation.
David Pallmann
Why on earth would you want to copy assemblies from the GAC and move them outside of it In many ways you are causing yourself more problems without knowing it.
In VS2005 when you add a reference, from within the .NET tab you are being shown all of the assemblies that are located on the system... those within the directory X:\Windows\Microsoft.NET\Framework\v2.0.50727 and other similar dirs (where X is the drive you have the framework installed to) are in the GAC. Remember, as far as the actual file locations are concerned, the GAC is just a set of folders with logic running elsewhere that manages which file is which and which version is which.
When you copy files from the GAC and use them externally... yes, you are still referencing them... only when you run your app later, the assemblies you copied out are not being used, instead those in the GAC are because of the way the runtime locates assemblies (http://msdn.microsoft.com/library/default.asp url=/library/en-us/cpguide/html/cpconhowruntimelocatesassemblies.asp).
frankbel
What exactly is the assembly that you are trying to reference
I've had no problem with any assembly in the GAC, so I can only assume that there's something gone a bit screwy on your system, or there's a bug on all systems with some of the assemblies, but they are assemblies that most people don't want to reference.
If you say which assembly you are trying to reference, I'll have a look on my system to see if it's there.
[EDIT] Ah, I see it's one of your own assemblies that you've added to the GAC. Is that correct Did you strong-name sign your assembly
I've had no problems adding my own assemblies to the GAC. You can be sure that if it didn't work, there'd be LOTS of people complaining about it! Therefore, I must assume that there's a bug that doesn't affect many people, or there's something funny about your assemblies or how you're adding them to the GAC.
vj78
Krishna Samaga
Ah, I see. Is it related to this
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx feedbackid=8234e091-81f8-4778-9487-371901d0fa45
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx feedbackid=ac46da5e-ce96-48a8-9cee-d10b1e0be26b
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx feedbackid=89a1c9c7-c7f9-4676-853f-c3a2fa40f8bf
Henk Pakker