8

nuget パッケージをプロジェクトに追加すると、アセンブリがソリューション レベルの /packages フォルダーに配置されます。

これを変更する方法があることは知っていますが、次の理由で非常に役に立たないように思われるため、なぜこれがデフォルトの場所なのか疑問に思っています。

1) 複数のソリューションの一部であるプロジェクトがある場合、/packages フォルダーは、プロジェクトが期待する場所にあるとは限りません。

2) 他のチーム メンバーのために手動でソース管理にチェックインすることが期待されます。これは、それを必要とするプロジェクトの一部である場合よりもはるかに不便です。

3) プロジェクトをファイル システムの別の場所に移動するか、完全なコード ベースを持たない別のマシンに移動すると、必要な場所に /packages フォルダーが見つかりません。

NuGet がソリューションではなくプロジェクト内の /packages フォルダーを使用した場合、これらはすべて解決されるようです。とにかく、プロジェクトが依存するパッケージを配置するのは、はるかに論理的な場所のようです。

だから...ソリューションレベルでそれを行うにはいくつかの正当な理由があった/あると思います.誰かが私を啓発してくれることを願っています.

4

2 に答える 2

4

パッケージをソース管理にコミットせずに nuget を使用する方法を説明し、副作用として質問のポイント 1 と 3 を解決する方法を説明する、これを読む必要があります: http://blog.davidebbo.com/2011/03/using -nuget-without-committing-packages.html

于 2011-07-19T14:19:15.783 に答える
2

ディスク容量を節約するためだと思います。50 個のプロジェクトを含む大規模なソリューションがあり、それらのすべてでパッケージを使用した場合、そのパッケージ、バイナリ、およびすべてのコピーが 50 個になることになります。それらをソリューションレベルに保つことは、その点ではるかに効率的です。

ソース管理に関しては、実際のパッケージ フォルダーをそこに置くべきではありません。packages.config ファイルを追加するだけで、 Mathieuが言及したブログ投稿で David Ebbo が提案していることを実行するか、単純なバッチ ファイルを作成して、見つけた packages.config ファイルに基づいてすべてのパッケージをダウンロードします。

独自の会社のナゲット フィードを作成するのはそれほど手間がかからないため、プライベート パッケージをそこに保持できます。

于 2011-07-19T14:23:35.460 に答える