Microsoft.Common.targets 파일을 찾습니다.
질문에 대한 답은 Microsoft.Common.targets
대상 프레임 워크 버전 의 파일 에 있습니다.
.Net Framework 버전 4.0 (및 4.5!)의 경우 AssemblySearchPaths 요소는 다음과 같이 정의됩니다.
<!--
The SearchPaths property is set to find assemblies in the following order:
(1) Files from current project - indicated by {CandidateAssemblyFiles}
(2) $(ReferencePath) - the reference path property, which comes from the .USER file.
(3) The hintpath from the referenced item itself, indicated by {HintPathFromItem}.
(4) The directory of MSBuild's "target" runtime from GetFrameworkPath.
The "target" runtime folder is the folder of the runtime that MSBuild is a part of.
(5) Registered assembly folders, indicated by {Registry:*,*,*}
(6) Legacy registered assembly folders, indicated by {AssemblyFolders}
(7) Resolve to the GAC.
(8) Treat the reference's Include as if it were a real file name.
(9) Look in the application's output folder (like bin\debug)
-->
<AssemblySearchPaths Condition=" '$(AssemblySearchPaths)' == ''">
{CandidateAssemblyFiles};
$(ReferencePath);
{HintPathFromItem};
{TargetFrameworkDirectory};
{Registry:$(FrameworkRegistryBase),$(TargetFrameworkVersion),$(AssemblyFoldersSuffix)$(AssemblyFoldersExConditions)};
{AssemblyFolders};
{GAC};
{RawFileName};
$(OutDir)
</AssemblySearchPaths>
.Net Framework 3.5의 경우 정의는 동일하지만 주석이 잘못되었습니다. 2.0 정의는 약간 다르며 $ (OutDir) 대신 $ (OutputPath)를 사용합니다.
내 컴퓨터에는 Microsoft.Common.targets 파일의 다음 버전이 있습니다.
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
이것은 Visual Studio 2008, 2010 및 2013이 Windows 7에 설치된 경우입니다.
출력 디렉토리가 검색된다는 사실은 잘못된 HintPath를 숨길 수 있기 때문에 (원본 포스터가 지적했듯이) 약간 실망 스러울 수 있습니다. 솔루션은 로컬 머신에서 정상적으로 빌드되지만 깨끗한 폴더 구조 (예 : 빌드 머신)에서 빌드 할 때 중단됩니다.