2016-11-29 7 views
2

私はトグルオフされた、つまりリリースされる準備ができていないフィーチャー(C#プロジェクト)に取り組んでいます。条件付きでnugetパッケージのバージョンを指定します

私のプロジェクトはナゲットによるコンポーネントに依存していますが、これは私が維持しているものです。

私の機能を使用するには、コンポーネントと私のプロジェクトの変更が必要です。

私は中間リリースを作る必要があり、私はブランチをしたくないです。

私のプロジェクトでは、フィーチャーをオフに切り替えて出荷することができます。問題は、フィーチャーがオフの場合、フィーチャーがオンの場合、コンポーネントのバージョンXとバージョンX + 1を使用するように、フィーチャートグルプロジェクトでナゲットを使用する方法です。

私は packages.config

私は非リリース環境の異なる飼料を使うのだと思うことができる唯一のことへの追加の条件のいずれかの方法を見つけることができませんでしたが、それは、他の物流の問題につながる可能性が

    • 編集:

      私構築するには、CIサーバー上で実行するので、私は何とかスクリプトそれをできるようにする必要があります。

  • 答えて

    0

    NuGetソースを制御する場合は、を使用できます。

    -alphaまたは-betaの接尾辞を付けてNugetパッケージをバージョン管理してから、Visual StudioでNuGetパッケージフィードの「Include prelease」のチェックボックスをオンにします。

    ビルドサーバーでスイッチを使用する場合は、MSBuild/MSBuildコミュニティタスク/ MSBuild拡張パックを使用することをお勧めします。

    MSBuildを使用してビルドステップを実行できます。ビルドステップは、設定ファイルを調べて.nuspecファイルを修正することができます。しばらく前に手元に手元がありませんが、xml/msbuildを使用してXMLファイルを解析し、変更を適用することは可能です。 IIRC大きな「落とし穴」あなたは.nusepc名前空間にspecifiyする必要があるということでした

    あなたが前を持つすべての依存性を <dependencies>要素をターゲットと接尾辞することが可能でなければなりませんnuspec file.Itを解析している

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

    -releaseタグ。

    +0

    「プレリリースを含める」をプログラムで制御するにはどうすればよいですか?手動で構築するのではなく、ビルドをCIで実行するので、私はスクリプト可能なものを好む。ありがとう。 –

    +0

    コマンドラインを使用して(それをCI用に使用する必要があります)、リリースごとにバージョンを渡します。 –

    +0

    @muhammadwaqas - msbuildを使用してnugetパッケージのバージョンを指定する方法のヒントは素晴らしいです! –

    関連する問題