TFS でいくつかのライブラリ ソリューションを構築している環境があります。ビルド プロセスの最後に、スクリプトはそれらを NuGet パッケージにパッケージ化し、ローカル フィードにプッシュします。
これで、日々ほとんど変化しないこれらのライブラリをアップストリーム プロジェクトに含めることができます。
これらのライブラリとアップストリーム プロジェクトは通常、同じバージョンで分岐されます。基本的に、トランクは進化する最新バージョンです。分岐する前に、トランクは 3.0.0.123 であるとします。123 は実行中のビルド番号です。ある時点で、現在のトランクをリリースするものとしてマークし、ブランチします。ブランチの時点でのトランクのバージョン番号がそのブランチのバージョンになり、次のリリースになる可能性が高いと思われるバージョン (たとえば 3.1.0.456) まで、トランクに適した方法でバージョンを増やします。 .
これは、NuGet の使用方法に少し奇妙さをもたらします。ブランチ 3.0.0.456 はブランチ (おそらく 3.0.0.457) の最新ライブラリを使用し、トランクはトランク (3.1.0.789) の最新ライブラリを使用します。
つまり、パッケージ内で依存関係を定義するときに NuGet が使用する方法と同様に、NuGet を使用してソリューションのバージョンをセットアップできるということです。
理想的には、分岐したアップストリーム アプリケーションに [3.0.0.456, 3.1) を使用し、トランクに最新 (バージョンなし) を使用するように指示したいと考えています。このシナリオでは、ブランチがピックアップされ、次のブランチ ビルド (3.0.0.457) がピックアップされ、トランクは、フィードに発行された最後の NuGet パッケージが何であれピックアップされます。
可能な解決策として私が思いついた唯一のアイデアは、ビルド テンプレートのパラメーターを使用し、それを使用して、NuGet ターゲットが実行される前に package.config ファイルを更新することです。
これがスーパーユーザーまたは他の場所に行く必要がある場合はお詫びします...