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 (15)

  1. thomas says:

    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

  2. Jeffery Callahan says:

    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?

  3. thomas says:

    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

  4. Zaynoun says:


    Forgive me if i look completely new to this, but what you meant by meant by "referencing during the design", is there components that can’t be referenced during design ? cause i installed FX3.0 and tried to use it without orca, by referencing the dlls in the …Window…v3.0*, but it tells me that these dlls can’t be referenced…. because there is some error.

    Can you help me ? thanks in advance.

  5. Jeffery Callahan says:


    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?


  6. mrjamesbound says:

    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?

  7. Leon Faircloth says:

    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.

  8. skeptic simon says:

    So if I am not going to be designing nor building any new components why do I need this junk on my computer?????

  9. Bob Loblaw says:

    I’m in a world of hurt. Suspecting that my system was compromised, I have desparately sought knowledge about networking this past month, including reconfiguring my user accounts on XP HE. My (extra)(personal) firewall logs have helped determine redirection. Finally uninstalling all versions of .Net, several programs have showed up in PF folder, including; Microsoft (M)CAPICOM,Reference Assemblies, m frontpage, M Visual Studio, MSECACHE, MSN, MSXML 4.0, MSXML 6.0, OfficeUpdate11, Windows Journal Viewer, Viewpoint, Windows Media Connect, Windows Media Connect 2, Windows NT, and xerox. As I am no programmer, I am in the dark as to where to look in the registry for info. My DCom config permissions seem REALLY messed up, and I know little about them, nor where to find out. Yesterday I discovered a M update KB 928365 which seems to address where I am at, but the fix is moot at this point. If I have to re-install, I’ll likely go to UBUNTU, since I was a victim in 2002 of the (at that time unknown) macro virus/trojans of Excel/power point/frontpage. I have since NOT installed any of those programs on my systems that access the www, yet here I am. I have taken screenshots of settings and program logs, throughout the past 3 weeks, yet if they are written in Prog Lang Code, I am dumb to what they say. Any ideas about where to go from here would be appreciated. Thanks for your site, and best regards. Bob

  10. I just stumbles across a "new" concept of Microsoft. In the C:Program FilesReference Assemblies

  11. 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 ?’

  12. Jarvis White says:

    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?


  13. Tom says:

    Can I delete the Framework v3.0 folder once v3.5 is installed?

  14. utghegrt says:

    egfedhredkhhrjdjhrdhf,cjkwtxkkehdketkijgjfcgte    jrht5gtrfh4teu   ehertdhtrr4h

  15. Beth says:

    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?

Skip to main content