Hi all,

In case if you are curious about what order is followed by MSBuild while resolving references during managed build process, it is as follows.

1. Resolve {CandidateAssemblyFiles}

List of assemblies, which must be absolute file names or project-relative file names, to use for the search and raesolution process.

2. {HintPathFromItem}

HintPath is an entry in your project file for references assemblies. Something like

<Reference Include “Foo.dll">

<HintPath>”c:\foo\bar\mycousin”</HintPath>

</Reference>

The path will be probed to resolve the assemblies.

3. {TargetFrameworkDirectory}

This is the .NET Framework set of directories.

4. {Registry:Software\Microsoft\.NETFramework,v4.0,AssemblyFoldersEx}

This registry key has a set of subkeys, containing the folders to be looked upon when resolving references. Also this key is probed by the Visual Studio “Add Reference” Dialog" for showing them up.

5. {AssemblyFolders}

The folders mentioned in the “ReferencePaths” as I believe. (I will check this one out)

6. {GAC}

The Global assembly cache

7. {RawFileName}

The absolute path of assemblies mentioned in the project file.

8. bin\Release\

This is the output folder where the assembly will be generated.