Visual Studio 2017에서 새로운 CSProj 형식을 사용하여 CreateLocalPackages
이라는 새 구성을 처리 할 대상 파일을 작성했습니다. 이 패키지는 특정 로컬 폴더에 NuGet 패키지를 만들고 해당 폴더의 솔루션 패키지 중 가장 높은 번호보다 하나 높은 버전 번호를 자동으로 증가시킵니다.NuGet 패키지 종속성에 올바른 버전이 나열되도록 빌드 별 버전 번호를 설정하는 방법
내 솔루션에는 여러 프로젝트가 있고 각각은 NuGet 패키지를 만들고 일부는 솔루션의 다른 프로젝트에 종속됩니다. 로컬 패키지 디렉토리에이 파일이 예를 들어
:BaseLibrary.2.1.0.1-betalocal.nupkg
BaseLibrary.2.1.0.1-betalocal.symbols.nupkg
BaseLibrary.Specialized.2.1.0.1-betalocal.nupkg
BaseLibrary.Specialized.2.1.0.1-betalocal.symbols.nupkg
그것은 CreateLocalPackages
구성 깨끗하게 지어진 그 다음에이 패키지를 만들도록 선택할 것입니다 : 내가 가진
BaseLibrary.2.1.0.2-betalocal.nupkg
BaseLibrary.2.1.0.2-betalocal.symbols.nupkg
BaseLibrary.Specialized.2.1.0.2-betalocal.nupkg
BaseLibrary.Specialized.2.1.0.2-betalocal.symbols.nupkg
Visual Studio에서 BaseLibrary\BaseLibrary.Specialized\obj\project.assets.json
파일을 만들어 MSBuild 대상에 연결하고 $ (Version)을 2.1.0.2
으로 변경하여를 일으키는 것을 제외하고는이 작업이 훌륭했습니다.대신이 종속성을 참조하십시오 : BaseLibrary.2.1.0-betalocal
. Visual Studio는 MSBuild를 호출하여 프로젝트를 빌드하기 전에 NuGet 복원 단계에서 project.assets.json
을 생성합니다.
내가 일찍 Restore
대상 체인에서 전화를받을하기 위해 내 버전 번호 로직 BeforeTargets="CollectPackageReferences;_ComputeTargetFrameworkItems"
를 실행 시도하지만 NuGet 패키지 참조를 복원 (그리고 project.assets.json
을 생성)하기 위해 MSBuild /t:Restore
를 호출 비주얼 스튜디오처럼 보이지 않는다. 자체 논리가 있는지 또는 다른 도구를 호출하는지는 알 수 없습니다.
나는 단지 VS에게 Rebuild하도록 말하고, 새로운 버전을 알아 내고, 빌드하고, 모든 의존성 버전을 나열한 패키지를 작성할 수 있기를 바랍니다.
'CreateLocalPackages' 구성에 버전 번호 로직 만 있으므로 디버그 또는 릴리스 구성 (즉, 일반 변경, 빌드, 실행, 디버그 개발주기)의 각 빌드가 버전을 증가시키지 않으므로 패키지를 만듭니다. 특정 구성을 사용하도록'dotnet restore '를 어떻게 말할 수 있습니까? NuGet는 이제 여러 .NET 프레임 워크 버전, 지원되지 않는 여러 구성을 지원하기 때문에 –
@JeremyMorton은, 내 지식, 우리는 특정 구성을 사용하는'DOTNET의 restore'을 말할 수 없습니다. https://stackoverflow.com/questions/45635618/nuget-with-build-configurations/45667723#45667723 –