7

tfsソース管理で2つの異なるアプリケーションをセットアップしています。どちらも共通のライブラリを共有し、ソース管理でも設定されています。

共通ライブラリを変更するための現在のプロセスは、それをビルドし、dllをコピーして、他のアプリケーションがプルインして操作できる場所にコピーすることです。これは手動であり、特にTFSCIビルドに移行しているためうまく機能しません。

TFSでのこのようなレイアウト:

-TFS
   - Web 1
      | Main
      | RB_1_0
   - Web 2
      | Main
      | RB_1_0
   - Shared
      | Main
      | RB_1_0
      | RB_2_0
      | RB_3_0

だから私はこれを変更し、自動化することを目指しています。しかし、どうすればそのようなことができるのかわかりません。ご覧のとおり、複数のブランチなどがあります。共通のライブラリとして、変更がWeb1やWeb2にプッシュされるnugetパッケージで作業するようにセットアップすることを検討していました。それがどれほど簡単かはわかりません。これを設定します。

上記の構造を確認し、出力されたdllの共通からの配布を管理するための最良の方法について意見を述べることは可能でしょうか?CI環境では?Nugetは最良のオプションですか?

4

1 に答える 1

9

これには NuGet を使用します。

ビルド プロセスを変更して、共通パッケージ用の新しいパッケージを作成する

nuget パッケージをビルドするアクティビティを追加し、NuGet リポジトリとして使用するネットワーク共有にそれをコピーする別のアクティビティを追加します。ビルド テンプレートを手動で編集する代わりに使用できる、Tfs NuGetterのようないくつかのプロジェクトが浮かんでいます。

ビルド テンプレートを変更したくない場合は、[tfs deployer] などのツールを使用して、代わりに NuGet パッケージを作成するカスタム デプロイ スクリプトを作成できます。または、ビルド完了イベントにフックする何かを記述します。

すべてのソリューションのビルド時にパッケージの復元を有効にする

つまり、パッケージをソース管理に保存したり、最新のソリューションを取得したときにダウンロードされないパッケージに対処したりする必要はありません。

依存関係のバージョンを更新する場合は、ソリューションを開いて、通常の NuGet パッケージと同様に更新します。

于 2012-10-21T20:13:08.650 に答える