Search code examples
visual-studiogac.net-assembly

How ASP.NET MVC / ASP.NET Web Pages assemblies are found by framework?


I have MVC assemblies here: C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies and ASP.NET Web Pages assemblies here: C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\

These assemblies are not installed into the GAC (I've checked with gacutil -l), but VS shows all of them in "Add Reference" dialog.

When I run site on IIS these assemblies are also loaded, but path to them is not specified in Web.config:

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

How these assemblies are found?


Solution

  • It seems that assemblies are installed into the GAC:

    C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools>gacutil.exe /l System.Web.Mvc
    Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.17929
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    The Global Assembly Cache contains the following assemblies:
      System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
      System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
    
    Number of items = 2
    

    Just use the right gacutil, now there are two of them -- one for 1.1/2.0/3.0/3.5/3.5SP1 and another for 4.0/4.5.