테스트 프로젝트에서 NuGet 패키지 참조를 사용하여 팀 도시에서 빌드를 설정했습니다.NuGet 패키지가있는 팀 도시 빌드
내가 사용한 폴더 structre는
\
|- Project1
\- Project1.csproj
|- Project1.Test
\- Project1.Test.csproj
|- packages
\- lib
\- RhinoMocks
가 Project1의 프로젝트가 성공적으로 빌드이지만, 테스트 프로젝트는 ResolveAssemblyReferences 단계에 실패합니다. 상대 경로가 올바르지 않은 것 같습니다.
[13:16:55]: [ResolveAssemblyReference] C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360, 9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Rhino.Mocks, Version=3.6.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[13:16:55]: [ResolveAssemblyReference] For SearchPath "{HintPathFromItem}".
[13:16:55]: [ResolveAssemblyReference] Considered "..\packages\RhinoMocks.3.6\lib\Rhino.Mocks.dll", but it didn't exist.
인 TeamCity 빌드 설정 :
- 은 MSBuild 작업
- 빌드 파일 경로 : Project1.Test \ Project.Test.csproj
- 작업 디렉토리 : %의 system.teamcity.build.checkoutDir % \ Project1.Test
- VCS 루트는 위의 폴더 구조의 루트를 가리 킵니다.
지금까지 MSBuild 문제 일 수 있음을 알 수 있듯이 MSBuild를 빌드 에이전트의 체크 아웃 폴더에있는 명령 줄에서 실행할 때도 동일한 오류가 발생합니다.
추가 정보 : 힌트 경로는 Nuget 패키지 구성에 의해 제공됩니다. Visual Studio 내에서 패키지 참조가 올바르게 작동합니다. 그러나 MSBuild를 통해 실행할 때 현재 디렉토리에 대해 혼란스러워 보입니다. .. \ packages ... 경로는 실제로 Nuget의 축 어적 인 참조 경로입니다.
나는 당신의 제안을 조사 할 것이다. 나는 무엇을 검사해야하는지, 검사하지 말아야하는지, 그리고 Nuget Installer의 존재를 알지 못했습니다. – benPearce