Using GAC

I still get questions about whether to use GAC or not.

People point to me Chris Sells’s article Avoid the GAC.

Chris’ article does not represent Microsoft’s official stand.

We recommend people to put assemblies to GAC whenever make sense.

Comments (4)

  1. Anonymous says:

    Yeah, right. As it was recommended to put DLLs into system32, supposedly to service them better and conserve disk space.

    Application should have everything in its folder and nothing in the Registry (who invented it anyway and what was wrong with separate INI files?) so it can be uninstalled by simple delete.

    I don’t care about disk space, I have 800GB on my machine. I DO care when I have to reinstall OS though. And pleeeese, don’t tell me .NET solves DLL hell. I have been in software development for 20 years and kind of know that every ‘solution’ out of a sudden creates its own problems.

  2. Anonymous says:

    > We recommend people to put assemblies to

    > GAC whenever make sense.

    This is not a useful statement unless you also list when it makes sense and when it does not.

    Think outside the box guys. Network deployment, shared namespace, logical assembly version names instead of physical.

  3. GAC is not for applications. It is for shared components.

    You are definitely right. There is no perfect solution. Every solution has its own pros and cons.

  4. If you guys can at least have some name in the comment, that will be great. As it is now, I am forced to use "anony1", "anony2":)


    I know it is not useful. I don’t want my statement to affect people’s judgement. This post is to clear the fact that Microsoft does not recommend people to *avoid the GAC*.

    The current implementation of .Net framework is not friendly to network applications. This is a well known fact. People are working to make it better in the future version.