2016-11-29 1 views
2

토글 해제 된 즉, 출시 준비가되지 않은 피쳐 (C# 프로젝트)에서 작업하고 있다고 가정 해 봅니다.조건부로 nuget 패키지 버전을 지정하십시오.

내 프로젝트는 nuget을 통한 구성 요소에 따라 다르며, 이는 유지해야하는 항목이기도합니다.

내 기능을 사용하려면 구성 요소와 내 프로젝트를 변경해야합니다.

중간 릴리스를 만들어야하며 분기하지 않는 것이 좋습니다.

내 프로젝트에서 피쳐를 토글 해제하고 배송 할 수 있습니다. 문제는 : 기능이 꺼져있는 경우 기능이 켜져있을 때 구성 요소 버전 X와 버전 X + 1을 사용하도록 기능 토글 프로젝트에서 어떻게 너겟을 사용합니까?

내가 packages.config

내가 아닌 릴리스 환경에 대해 서로 다른 피드를 사용하다 생각할 수있는 유일한 방법에 대한 추가 조건의 방법을 찾을 수 있지만, 다른 물류 문제가 발생할 수

    • .

      편집 : 내이 CI 서버에서 실행 빌드, 그래서 어떻게 든 스크립트를 할 수 있어야합니다

      .

  • 답변

    0

    NuGet 소스를 제어하는 ​​경우 Pre-Release functionality을 사용할 수 있습니다.

    -alpha 또는 -beta 접미사로 Nuget 패키지를 버전 관리 한 다음 Visual Studio에서 NuGet 패키지 피드의 "Include prelease"확인란을 선택하십시오.

    빌드 서버의 스위치를 사용하려면 MSBuild/MSBuild 커뮤니티 작업/MSBuild 확장 팩을 사용하는 것이 좋습니다.

    구성 파일을 검사하고 .nuspec 파일을 수정할 수있는 MSBuild를 사용하여 빌드 단계를 실행할 수 있습니다. 나는 얼마 전부터 손을 쓸 소스가 없지만 xml/msbuild를 사용하여 xml 파일을 구문 분석하고 변경 사항을 적용 할 수 있습니다. IIRC 큰 "잡았다"당신이 .nusepc 네임 스페이스를에서 지정할 필요가 있었다

    당신은 사전에 모든 dependecies을 <dependencies> 요소를 목표 및 사양하는 것이 가능 있어야 nuspec file.It을 구문 분석하는

    <package xmlns="http://schemas.microsoft.com/packaging/2016/06/nuspec.xsd">

    -lease 태그.

    +0

    그렇다면 어떻게 "시험판 포함"을 프로그래밍 방식으로 제어 할 수 있습니까? 저는 수동으로 빌드하지 않습니다. 빌드는 CI에서 실행되므로 스크립팅 할 수있는 것을 선호합니다. 감사. –

    +0

    명령 줄을 사용하여 (CI 용으로 사용해야 함) 각 릴리스에 대해 버전 번호를 전달하십시오. –

    +0

    @muhammadwaqas - msbuild를 통해 nuget 패키지 버전을 지정하는 방법에 대한 팁은 정말 멋지게 될 것입니다! –

    관련 문제