외부 바이너리 (예 : Moq, NUnit) 및 공유 기능이 포함 된 내부 라이브러리 프로젝트 모두에 대해 NuGet을 소프트웨어 개발 프로세스에 도입하는 중입니다.프로젝트 참조 v NuGet 종속성
TeamCity는 내부 라이브러리 프로젝트에서 NuGet 패키지를 생성하여 로컬 저장소에 게시합니다. 수정 된 솔루션 파일은 로컬 저장소를 사용하여 NuGet 패키지에 액세스합니다.
는 다음의 소스 코드 솔루션을 고려
- Company.Interfaces.sln는 Company.Interfaces.1.2.3.7654.nupkg을 구축합니다.
- Company.Common.sln는 NuGet 패키지 통해 Company.Interfaces에 대한 참조를 포함하며 Company.Interfaces.1.2.3.7654 종속성 포함하여, Company.Common.1.1.1.7655.nupkg을 만든다.
- Company.DataAccess.sln은 Company.Common nupkg를 사용하여 Company.Interfaces 및 Company.Common을 참조로 추가합니다. 종속 구성 요소로 Company.Common.1.1.1.7655를 포함하여 Company.DataAccess.1.0.8.7660.nupkg을 빌드합니다.
- Company.Product.A은 세 라이브러리 프로젝트 (모두 Company.DataAccess NuGet 패키지 선택)에 대한 참조를 포함하는 웹 사이트 솔루션입니다.
질문 :
Company.Interfaces에 소스 코드 변경이있는 경우, 나는 항상 패키지 번호를 다시 중간 패키지 (Company.Common 및 Company.DataAccess)을 재건하고 업데이트해야 할 Company.Product.A에서?
또는 소스 코드 변경 여부에 따라 달라집니다 않습니다는
- 버그 수정, 또는
- 새로운 기능 또는
- 주요 변경했다?
실제로는 8 레벨의 종속 라이브러리 패키지가 있습니다. 필요한 경우 전체 패키지 트리를 업데이트하기위한 툴링 지원이 있습니까?
시맨틱 버전 관리에 대해 알고 있습니다.
우리는 VS2012, C# 4.0, TeamCity 7.1.5를 사용하고 있습니다.
다음과 같은 것이 있습니까? http://candordeveloper.com/2012/12/12/nuget-package-build-a-solution-of-projects/ –
우리의 NuSpec 파일은 불행히도 자동 버전 대체를위한 일부 매크로로 직접 편집됩니다. 내 말은 종속 빌드 구성을 자동으로 트리거하고 NuGet 패키지를 업데이트하고 결과 변경 사항 (일반적으로 .csproj 및 packages.config 파일)을 체크인하고 리프 프로젝트까지 체인을 계속 유지하는 형태입니다. –