15

現在、TFSの依存関係の問題を解決するためにNuGetを検討しています。やりたかったのは、内部の依存関係を処理する独自のNuGetサーバーをホストすることです。また、NuGetを使用してサードパーティの依存関係も処理したいと思います。私は会社の自動ビルドをセットアップしようとしていますが、これはNuGetで克服しようとしている障害の1つです。

だから私の質問は、異なるサーバーから依存関係を取得する必要があるこのシナリオをどのように処理するのですか?

内部依存関係を処理するためのより良い方法はありますか?他のみんなはどうやってこれをやっていますか?

また、メモとして、TFSにパッケージをコミットせずにNuGetを使用するつもりです。この記事でメソッドの概要を使用することを計画しました。

http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

4

2 に答える 2

11

TFS上のNuGetパッケージのコミットなしのシナリオを検討していることをうれしく思います。コンセプトを説明しているこのトピックに関する私のブログ投稿をご覧ください。

編集(2012/06/13):NuGetPowerToolsは、NuGetの組み込みパッケージ復元機能に置き換えられました。ただし、nuget.targetsのPackageSources要素を変更するという同じ概念が引き続き適用されます。

あなたは間違いなくDavidFowlerのNuGetPowerToolsを見てみるべきです。このパッケージをインストールした後、Enable-PackageRestore(Package Manager Consoleに新しくインストールされたコマンド)を追加できます。これにより、...が追加 されます。パッケージの復元を有効にすると、MSBuildターゲットがプロジェクトファイルに追加されます。これらのMSBuildターゲットは、ビルド前の手順でnuget.exeをトリガーし、プロジェクトに必要なパッケージをフェッチします。ソース管理でNuGetパッケージをチェックインする必要はありません。必要なのは、packages.configとこれらのmsbuildタスクだけです。

複数の異なるパッケージソースを構成するには、これらのMSBuildタスクで使用されるいくつかの設定を設定する必要があります。それらの1つはPackageSourcesです。パッケージの復元を有効にすると、 .nugetフォルダーにあるNuGet.targetsファイルを編集して設定できます。

これらのパッケージソースに関しては、さまざまな内部NuGetギャラリーを設定することも、使用するさまざまなネットワーク共有を設定することもできます。これは要件と好みの問題なので、選択できます。あなたがする必要があるのは、これらのパッケージソースを使用するようにmsbuildターゲットに指示することです。それらを定義する順序は、パッケージのルックアップの順序にもなります。

幸運を!ザビエル

于 2011-10-07T18:07:11.453 に答える
1

受け入れられた回答と質問に関する最新情報:

Visual StudioがインストールされていないビルドマシンとしてTFSを使用する場合は、次のように実行できます。これにより、ビルドマシンは、ソリューションでpackagesourcesをさらに構成しなくても、カスタムpackageSources(同じソリューションで複数)を自動的に使用します。

  1. http://docs.nuget.org/docs/reference/nuget-config-fileのサンプルを使用して、ルート(C:\ NuGet.Config)にNuGet.Configを配置し、マシンの既定の構成を作成します。

  2. 次の行をコメントアウトします。<add key="repositorypath" value="$\External\Packages" />

    それ以外の場合、パッケージはC:\ $ \ External \ packages\'で展開されます。コメントアウトすると、構成がチェーンされ、適切なディレクトリが使用されます。

  3. 必要なパッケージソースを構成します。

他のオプション(ユーザー固有など)の詳細については、http://docs.nuget.org/docs/reference/nuget-config-file(ページの下部)を参照してください。

于 2013-08-15T12:46:21.467 に答える