Look in the file Microsoft.Common.targets
The answer to the question is in the Microsoft.Common.targets file for your target version of the frame.
For .Net Framework version 4.0 (and 4.5!), The AssemblySearchPaths element is defined as follows:
<AssemblySearchPaths Condition=" '$(AssemblySearchPaths)' == ''"> {CandidateAssemblyFiles}; $(ReferencePath); {HintPathFromItem}; {TargetFrameworkDirectory}; {Registry:$(FrameworkRegistryBase),$(TargetFrameworkVersion),$(AssemblyFoldersSuffix)$(AssemblyFoldersExConditions)}; {AssemblyFolders}; {GAC}; {RawFileName}; $(OutDir) </AssemblySearchPaths>
For .Net Framework 3.5, the definition is the same, but the comment is incorrect. Definition 2.0 is slightly different; it uses $ (OutputPath) instead of $ (OutDir).
On my machine, I have the following versions of the Microsoft.Common.targets file:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Microsoft.Common.targets C:\Windows\Microsoft.NET\Framework64\v3.5\Microsoft.Common.targets C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets
This is with Visual Studio 2008, 2010, and 2013 installed on Windows 7.
The fact that searching the output directory can be a little disappointing (as the original poster indicates), as it can hide the wrong HintPath. The solution is built on your local OK machine, but it breaks when you build in a clean folder structure (for example, on an assembly machine).
Nils Sep 16 '14 at 7:20 2014-09-16 07:20
source share