TFS2015에서 자동화 된 빌드를 설정하려고합니다. 목표는 체크인 할 때 솔루션이 자동으로 빌드되고 테스트되도록하고 모든 것이 통과되면 새로운 Nuget 패키지가 생성되어 로컬 저장소에 배치됩니다.TFS 빌드에서 Nuget 패키지가 추출되지 않았습니다.
이 프로세스는 의존성이없는 간단한 프로젝트 인 내 첫 번째 솔루션에서 잘 작동합니다. 이 프로젝트에서 생성 된 Nuget 패키지는 두 번째 프로젝트에서 종속성으로 사용됩니다.
Visual Studio에서 빌드 할 때 제대로 작동합니다. 패키지가 정상적으로 다운로드되고 추출됩니다. 그러나이 두 번째 프로젝트를 TFS에 체크인하면 자동 빌드가이 패키지를 제대로 처리하지 못합니다. 패키지는 로컬 저장소에서 복원되지만 추출되지는 않습니다. 즉, 실제 DLL을 찾을 수 없으므로 빌드가 실패합니다.
또한 프로젝트에서 EntityFramework를 사용하고 있으며 올바르게 작동합니다. 패키지가 다운로드되었지만 추출되었습니다.
이 question에 주어진 해결 방법을 시도했지만 TFS 서버에 C : \ Users.nuget \ packages 폴더가 없습니다.
또한 here 명령을 사용하여 Nuget 캐시를 지우려고했지만 다시는 도움이되지 않았습니다.
자동화 된 빌드에서 다운로드 한 Nuget 패키지를 수동으로 추출한 다음 빌드를 다시 실행하면 패키지 자체에 문제가 없음을 나타내는 메시지가 나타납니다.
Nuget.exe 버전은 3.5입니다. 닷넷 버전은 4.5 표준입니다. 패키지는 packages.config 및 프로젝트 참조에서 참조됩니다. Nuget.exe가 복원에 사용되고 있습니다.
로컬 패키지가 추출되지 않는 이유에 대한 의견이 있으십니까?
어떤 프로젝트를 사용하고 있습니까? classic .net, .net core/standard ("SDK"-projects). packages.config 또는 ProjectReference? 복원하는 데 nuget.exe를 사용하고 있습니까? –
.Net 버전은 4.5 표준입니다. 패키지는 packages.config 및 프로젝트 참조에서 참조됩니다. Nuget.exe가 복원에 사용되고 있습니다. – ChrisW
그리고 솔루션 - 로컬 패키지 폴더를 삭제할 때 컴퓨터에서 작동합니까? 나는 패키지 참조가 packages.config에서 누락 된 것으로 의심하고 dev 머신에서 우연히 작동 할 수도 있습니다. –