두 가지 시나리오 에서이 문제가 발생했습니다.
먼저 msbuild.exe를 사용하여 명령 줄에서 솔루션을 빌드하려고합니다. 둘째, TFS 및 CI를 사용하여 빌드 서버에서 sln 및 포함 프로젝트를 빌드하려고 할 때.
참조가 누락되었다고 주장하는 오류가 발생합니다. 로컬 빌드 디렉토리와 TFS 서버를 모두 검사 할 때 / packages 폴더가 생성되지 않고 nuget 패키지가 복사되지 않는 것을 알 수 있습니다. Alexandre의 답변에 나열된 지침에 따라 http://nuget.codeplex.com/workitem/1879 도 작동하지 않았습니다.
VS2010을 통해 패키지 복원을 활성화했으며 VS2010 내에서만 빌드가 작동하는 것을 보았습니다. 다시 말하지만 msbuild 사용이 실패합니다. 해결 방법은 완전히 유효하지 않지만 내 환경의 경우 명령 줄 빌드와 TFS의 CI 빌드에서 모든 것이 작동합니다.
. \ nuget으로 이동하여 .nuget \ NuGet.targets 파일에서이 줄을 변경했습니다.
에서:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>
to : (주의 사항, 변수 주위에 따옴표가 없음)
<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>
내 디렉토리에 공백이 있으면 실패하지만 디렉토리에 공백이 없으므로이 해결 방법으로 빌드가 성공적으로 완료되었습니다 ... 당분간.
빌드에서 진단 수준 로깅을 설정하면 msbuild에서 실행중인 명령을 표시하는 데 도움이됩니다. 이것이 목표 파일을 일시적으로 해킹하게 한 것입니다.