157

3 つのプロジェクトを含むソリューションがあるとします。

  • UI
  • テスト

私が使用する NuGet パッケージの一部は、3 つのプロジェクトすべてに適用されます。UI とテストにのみ適用されるものもあれば、テスト (NUnit など) にのみ適用されるものもあります。

NuGet を使用してこれを設定する正しい方法は何ですか?

  1. 参照が必要な場合はいつでも、3 つのプロジェクトすべてで [ライブラリ パッケージ参照の追加] を使用する必要がありますか?
  2. 最初にパッケージが必要になったときに「ライブラリ パッケージ参照の追加」を使用し、それ以降の使用には [参照の追加] -> [参照] を使用する必要がありますか?

どちらの場合でも、packages.configファイルはいくつ必要ですか?

4

6 に答える 6

243

これに出くわした人には、次のオプションがあります。

ソリューションを右クリック > ソリューションの NuGet パッケージの管理...

... または:

ツール > ライブラリ パッケージ マネージャー > ソリューションの NuGet パッケージの管理...

また、[インストール済みパッケージ] エリアに移動すると、ソリューション内のすべてのプロジェクトで単一のパッケージを「管理」できます。

于 2011-12-28T07:59:35.883 に答える
77

コンソールを使用して複数のプロジェクトをターゲットにする

Tools > Library Package Manager > Package Manager Console

次に、このコマンドを使用します

Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME

例えば

Get-Project Core,UI | Install-Package FluentDateTime
于 2011-04-03T01:16:06.583 に答える
21

この甘い取引は私のために働きます:

PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
    $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
    | ForEach-Object {Install-Package MvvmLight -project $_.Name}
于 2011-05-04T19:34:15.193 に答える
12

複数のソリューションにパッケージをインストールしたい場合は、それを行うための便利な Powershell スクリプトを作成しました。こちらを参照してください。

コマンドをフィルタリングしてGet-Project -All、プロジェクト リストのサブセットをターゲットにすることもできます。

于 2011-03-24T22:10:22.547 に答える
8

ソリューション内のすべてのプロジェクトで、すべての外部ライブラリに対して「ライブラリ パッケージ参照の追加」を使用する必要があります。プロジェクトごとに packages.config が作成されます。

ただし、パッケージを 1 回だけダウンロードして、他のすべてのプロジェクトでローカルに再利用します。

于 2011-03-24T12:11:33.447 に答える