Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 725097
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T06:17:55+00:00 2026-05-14T06:17:55+00:00

%windir%\Microsoft.NET\assembly\ is the new GAC . Does it mean now we have to manage

  • 0

%windir%\Microsoft.NET\assembly\ is the new GAC. Does it mean now we have to manage two GACs, one for .NET 2.0-3.5 applications and the other for .NET 4.0 applications?

The question is, why?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T06:17:55+00:00Added an answer on May 14, 2026 at 6:17 am

    Yes since there are 2 distinct Global Assembly Cache (GAC), you will have to manage each of them individually.

    In .NET Framework 4.0, the GAC went through a few changes. The GAC was split into two, one for each CLR.

    The CLR version used for both .NET Framework 2.0 and .NET Framework 3.5 is CLR 2.0. There was no need in the previous two framework releases to split GAC. The problem of breaking older applications in Net Framework 4.0.

    To avoid issues between CLR 2.0 and CLR 4.0 , the GAC is now split into private GAC’s for each runtime.The main change is that CLR v2.0 applications now cannot see CLR v4.0 assemblies in the GAC.

    Source

    Why?

    It seems to be because there was a CLR change in .NET 4.0 but not in 2.0 to 3.5. The same thing happened with 1.1 to 2.0 CLR. It seems that the GAC has the ability to store different versions of assemblies as long as they are from the same CLR. They do not want to break old applications.

    See the following information in MSDN about the GAC changes in 4.0.

    For example, if both .NET 1.1 and .NET 2.0 shared the same GAC, then a .NET 1.1 application, loading an assembly from this shared GAC, could get .NET 2.0 assemblies, thereby breaking the .NET 1.1 application

    The CLR version used for both .NET
    Framework 2.0 and .NET Framework 3.5
    is CLR 2.0. As a result of this, there
    was no need in the previous two
    framework releases to split the GAC.
    The problem of breaking older (in this
    case, .NET 2.0) applications
    resurfaces in Net Framework 4.0 at
    which point CLR 4.0 released. Hence,
    to avoid interference issues between
    CLR 2.0 and CLR 4.0, the GAC is now
    split into private GACs for each
    runtime.

    As the CLR is updated in future versions you can expect the same thing. If only the language changes then you can use the same GAC.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

If I do LoadLibrary(%windir%\\system32\\ole32.dll) does that mean Windows will ONLY load from c:\windows\system32\ole32.dll ?
I installed the VS2010 and .NET 4.0, then I compiled an assembly and ran
I have an application that is running on .net 3.5 SP1 and that is
As per this document http://msdn.microsoft.com/en-us/library/bb613488(v=vs.85).aspx I've created a profile in: %windir%\system32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 The profile only
I have written a tool that references Microsoft.TeamFoundation.VersionControl.Client.dll, which is a 32-bit DLL. When
Have just started converting an existing job tracking system into an ASP.NET MVC application.
I'm creating a setup project for WCF net-tcp service. One thing I came across
I have an InvokeProcess activity in my build template. I've put PsExec.exe into %windir%\system32\
C++-Protobuf does not compile in VS2012. Now I want to use MinGW to compile
I am currently working on an ASP.NET application in VB.NET and one of its

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.