4

私は2つのプロジェクトを解決しています。1 つはバージョン 3.0.0.* で、もう 1 つは 2.0.0.* です。MSBuild スクリプトを使用して、Team City でソリューションを構築します。バージョン文字列のビルド番号部分を AssemblyVersion 属性に挿入し、開発時に定義されたように major.minor.patch を残すにはどうすればよいですか。

別の言い方をすれば、major.minor.patch を手動で制御したい (メジャーはソリューション内のライブラリ間で異なる) が、ビルド番号を自動インクリメントしたい。

4

2 に答える 2

9

TeamCityはAssemblyVersion属性を自動的に管理しますが、いくつかの注意点があります。

  1. 既存の値を完全に上書きします。
  2. ソリューション内のすべてのAssemblyVersionが更新されるため、同じソリューションで異なるプロジェクトバージョンを維持する必要がある場合、これは機能しない可能性があります。

これらの注意事項を踏まえて、次のように設定しました。

  • ビルド構成の一般設定Build number formatで、を次のように変更します。%version%.{0}
  • ビルドパラメータ%version%で、major.minor.patchとして定義します。
  • ビルド手順で、画面の一番下までスクロールし、[ビルド機能の追加]をクリックします。を選択しAssemblyInfo patcherます。Assembly version formatがとして入力されていることを確認してください%build.number%

以上です。TeamCityは、すべてのアセンブリ情報を%version%とビルドカウンターで定義されているmajor.minor.patch.buildに更新し、ビルドの最後のステップとしてこれらの変更を自動的に元に戻します。

于 2013-01-11T16:09:23.240 に答える
0

Teamcity構成のビルド番号は、msbuildで$(BUILD_NUMBER)を介して利用できます。teambuildnoをデフォルトの{0}のままにします。これを使用して、独自のカスタムmsbuildを介して2つのアセンブリ情報ファイルを編集することをお勧めします。各ファイルのトークン化されたバージョンを保持して、バージョンファイルのバージョン属性に2.0.0。$(BUILD_NUMBER)が含まれるようにしてから、拡張パックのトークン解除を使用して両方(または任意の数のファイル)を変換できます。それでも、両方のプロジェクトで同じバージョン管理を行う必要があると思います...

于 2013-01-13T18:01:19.603 に答える