2017-05-17 6 views
0

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가 복원에 사용되고 있습니다.

로컬 패키지가 추출되지 않는 이유에 대한 의견이 있으십니까?

+0

어떤 프로젝트를 사용하고 있습니까? classic .net, .net core/standard ("SDK"-projects). packages.config 또는 ProjectReference? 복원하는 데 nuget.exe를 사용하고 있습니까? –

+0

.Net 버전은 4.5 표준입니다. 패키지는 packages.config 및 프로젝트 참조에서 참조됩니다. Nuget.exe가 복원에 사용되고 있습니다. – ChrisW

+0

그리고 솔루션 - 로컬 패키지 폴더를 삭제할 때 컴퓨터에서 작동합니까? 나는 패키지 참조가 packages.config에서 누락 된 것으로 의심하고 dev 머신에서 우연히 작동 할 수도 있습니다. –

답변

0

이 원인은 실수로이 프로젝트의 패키지 폴더를 어떤 지점으로 체크인했기 때문에 로컬 Nuget 폴더에서 실제로 나타난 내용이 실제로 패키지 폴더에서 복사되었다는 것으로 밝혀졌습니다. 계획.

TFS에서 패키지 폴더를 제거하면 문제가 해결되었습니다.

어떤 경우에도 패키지를 추출하지 못한 이유는 확실하지만 문제는 해결되었습니다.

+0

대답으로 표시하십시오. 감사합니다 –

+0

내일까지는 할 수 없습니다. – ChrisW