New Reference Assemblies Location

Those of you who've been using the 3.0 Framework may have noticed a folder under Program Files called "Reference Assemblies".  This folder contains those assemblies that ship with the 3.0 Framework which are useful for referencing during the design and build of new components.  Those of you who haven't yet used the 3.0 Framework, but plan on using the 3.5 Framework when it's released to the wild, will notice this change has continued.

This change is largely about disentangling design time and runtime scenarios.  At runtime, these components will still be loaded from the GAC in most cases.  At design time, going forward there will be a single location where users can find assemblies available for reference.  This location for the 3.5 Framework is:

     "%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.5"

For MSBuild, we've placed the 3.5 versions of the assemblies Microsoft.Build.Engine.dll, Microsoft.Build.Framework.dll, Microsoft.Build.Conversion.v3.5.dll and Microsoft.Build.Utilities.v3.5.dll (explanation of the "v3.5" in the filenames coming in a subsequent blog post!) at this location, and as mentioned earlier they will continue installing to the GAC for runtime use.  Notice I didn't list Microsoft.Build.Tasks.v3.5.dll here - because this assembly is essentially for runtime use only, we didn't decide to install it under the Reference Assemblies location.

The tools themselves that ship with the .NET Framework v3.5 (csc.exe, msbuild.exe, vbc.exe) will continue installing to their expected locations.

At build time, we actually had little work to do to accommodate this change.  For the version of MSBuild that shipped with the .NET Framework 2.0, we used a single location under the WINDOWS folder in different ways for different parts of the build.  For example, the compiler tasks looked in this location to find the executable they called, and the reference resolution task (ResolveAssemblyReference) would look in this location to resolve certain system assemblies.  Now, the reference resolution task has a location set aside expressly for this purpose, so it no longer needs to inspect the location under WINDOWS (for 3.0 and 3.5, anyways).

[ Author: Jeffery Callahan ]

Comments

  • Anonymous
    May 07, 2007
    Hello Jeffery, I installed Orcas and the Orcas SDK and since days I struggle with a weird problem. It appears that I do not habe thecorrect msbuild.utilities.v3.5 assembly on ma machine. I do not have a Reference AssembliesMicrosoftFrameworkv3.5 folder on my machine. What do I have to install to get this directory? Any help would be highly appreaciated. thanks in advance thulka@yahoo.com

  • Anonymous
    May 09, 2007
    The folder should have been installed under your %ProgramFiles% directory when you installed Orcas.  Can you tell me which drop of Orcas you installed?  Is it Beta1?

  • Anonymous
    May 13, 2007
    It was the ctp from march, I now cleaned everything (removed vs2003 and 2005) and installed the beta and everything is fine, the Reference Assemblies/3.5 folder is now here. thank you very much! btw the beta is phantastic

  • Anonymous
    May 16, 2007
    The comment has been removed

  • Anonymous
    July 13, 2007
    Zaynoun, Sorry for the late reply (you may have better luck getting help with issues at our forum); did you resolve your issue?  If not, what errors are you seeing? Jeff

  • Anonymous
    October 02, 2007
    I got an error in VS2005 since Orcas.... Error 2 The "ResolveAssemblyReference" task failed unexpectedly. System.BadImageFormatException: Could not load file or assembly 'C:Program FilesMicrosoft Enterprise Library June 2005binMicrosoft.Practices.EnterpriseLibrary.Configuration.dll' or one of its dependencies. The module was expected to contain an assembly manifest. File name: 'C:Program FilesMicrosoft Enterprise Library June 2005binMicrosoft.Practices.EnterpriseLibrary.Configuration.dll' Why MS didn't give us any fix?

  • Anonymous
    December 02, 2007
    I have installed the release of Visual Studio 2008 on a Vista OS.  The directory you mentioned was created and the manifest loaded for the assemblies, but no assemblies are included. VS crashes on the creation of any project and I get an installation error when trying to reload the 3.5 framework.  So far, there are many posts with a similar error and no solutions.

  • Anonymous
    December 10, 2007
    The comment has been removed

  • Anonymous
    January 20, 2008
    The comment has been removed

  • Anonymous
    July 20, 2008
    I just stumbles across a "new" concept of Microsoft. In the C:Program FilesReference Assemblies

  • Anonymous
    September 18, 2008
    I have created custom code activity in VSX. When I run this application in 'Experimental Hive', It will load all custom templates, but when i try to create new project by using this custom templates i can not see my custom code activity in toolbox. My question is ' How to load / register custom workflow activity into Experimental Hive's Toolbox ?'

  • Anonymous
    November 07, 2008
    I am not using any language assembly of any kind, yet a few days ago an Icon, Reference Assembly, greeted me on my DeskTop. While it's not an overly large file, since it's not something I have any idea of ever using it would be nice to be able to put it back in a Temp dir, or even Program Files, but it will not leave the DeskTop! I finally became tired of messing with it and decided I could live without it, but, no, I am not able to delete it. Could someone tell me what I have to do to hide it? Thanks,

  • Anonymous
    December 28, 2011
    Can I delete the Framework v3.0 folder once v3.5 is installed?

  • Anonymous
    September 10, 2014
    egfedhredkhhrjdjhrdhf,cjkwtxkkehdketkijgjfcgte    jrht5gtrfh4teu   ehertdhtrr4h

  • Anonymous
    October 21, 2015
    I noticed that I have both v3.0 and v3.5 in my folder- do I need both? I feel like it's taking up a lot of room. and how do I know which one I need?