2017-10-05 5 views
0

NuGet 패키지의 CICD 파이프 라인에 빌드 번호 또는 다른 계산 된 버전 번호를 사용하고 싶습니다. 기본적으로 개발자는 메이저 및 마이너 버전 번호를 제어하지만 빌드를 자동으로 증가시킵니다.CLI에서 NuGet 패키지 버전 덮어 쓰기

nuget.exe을 사용하면 -Version 스위치를 사용하여 최종 패키지의 버전을 무시할 수 있습니다. 그러나 .NET 코어 2.0 라이브러리 프로젝트와 함께이 실패하고 내가 dotnet pack을 사용해야합니다, 참조 :

https://github.com/NuGet/Home/issues/4491

그래서 어떻게 완전히 버전을 오버라이드 (override) 할 dotnet pack에 대해서만 --version-prefix CLI 인수입니까?

답변

3

당신은 거의 문서화 /p 옵션을 사용할 수 있습니다

dotnet pack /p:PackageVersion=2.1.0 

당신이 VSTS에 대한처럼, 당신의 CICD 도구에서 원하는대로 당신이 결합 할 수 있습니다, 분명히

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-pack?tabs=netcore2x

를 참조하십시오

/p:Version=$(Build.BuildNumber) 

참고 VSTS에는 "pack"이 동사 인 경우 (2017 년 10 월 5 일 미리보기에서) .NET 코어 작성 작업 내에서 자동 버전 관리를위한 몇 가지 옵션이 있습니다.

VSTS에 나에 대한 최종 해결책은 Use the build number 설정과 .NET 핵심 dotnet pack 작업을 사용하는 것이었다과 빌드 정의에 대한 옵션 설정 빌드 번호 형식으로 다음

2.0.$(Build.BuildId) 

엔지니어는 크거나 큰 변화가있을 때 버전을 변경해야합니다. 나는 코드에서 이것을 선호한다. 언젠가는 .csproj에서 빌드 시스템으로 전화를 걸기위한 스크립트를 작성하겠습니다.

+4

btw 또한'/ p : BuildNumber = $ (Build.BuildId)'를 정의한 다음 csproj에서' 0'및 ' 2.0. $ (BuildNumber)'csproj에서 버전의 일부를 설정할 수 있습니다. –

+0

@MartinUllrich 그게 좋은 팁입니다. 고마워요! –