Microsoft Visual Studio for Windows の NuGet パッケージ マネージャー UI を使用すると、プロジェクトやソリューションで NuGet パッケージを簡単にインストール、アンインストール、更新できます。
この記事は Windows ユーザーのみを対象としています。 Visual Studio for Mac を使用している場合は、「 プロジェクトに NuGet パッケージを含める」を参照してください。
[前提条件]
Windows 用の Visual Studio 2022 を .NET 関連のワークロードと共にインストールします。
2022 Community エディションは 、visualstudio.microsoft.com から無料でインストールすることも、Professional または Enterprise エディションを使用することもできます。
Visual Studio 2017 以降では、.NET 関連のワークロードをインストールすると、NuGet パッケージ マネージャーが自動的に含まれています。 Visual Studio インストーラーで個別にインストールするには、[個々のコンポーネント] タブを選択し、[コード ツール] の [NuGet パッケージ マネージャー] を選択します。
Visual Studio 2015 の場合、NuGet パッケージ マネージャーが見つからない場合は、 ツール>Extensions と更新プログラム を確認し、 NuGet パッケージ マネージャー拡張機能を 検索します。 Visual Studio で拡張機能インストーラーを使用できない場合は、 https://dist.nuget.org/index.htmlから直接拡張機能をダウンロードします。
まだお持ちでない場合は、nuget.org の無料アカウントに登録してください。 NuGet パッケージをアップロードする前に、アカウントを登録して確認する必要があります。
パッケージを検索してインストールする
Visual Studio で NuGet パッケージを検索してインストールするには、次の手順に従います。
ソリューション エクスプローラーでプロジェクトを読み込み、Project>Manage NuGet パッケージを選択します。
[NuGet パッケージ マネージャー] ウィンドウが開きます。
[ 参照 ] タブを選択すると、現在選択されているソースの人気順にパッケージが表示されます (パッケージ ソースを参照)。
- 特定のパッケージを検索するには、左上の検索ボックスを使用します。
- 各パッケージ ID の横には、正しいパッケージの識別に役立つ省略された情報が表示される場合があり、選択したパッケージ ソースによって異なります。 たとえば、パッケージのダウンロード数、作成者、所有者プロファイルのハイパーリンクなどがあります。
注
Visual Studio 17.11 以降では、選択したパッケージ ソースでサポートされている場合、パッケージ所有者はプロファイル ハイパーリンクとして表示されます。 パッケージの所有権は、パッケージ ソースによって定義されます。 たとえば、「 nuget.org でのパッケージ所有者の管理」を参照してください。
Visual Studio 17.10 以前では、パッケージ 作成者 メタデータが表示され、プレーンテキストとして表示されます。 詳細については、「 作成者パッケージのメタデータ」を参照してください。
- パッケージを選択すると、詳細なパッケージ情報が表示されます。
右側に詳細ウィンドウが表示され、インストールするバージョンを選択できます。
パッケージ メタデータ、所有者、作成者、ライセンスなどに関する情報は、[パッケージの詳細] タブと [パッケージ作成者によって提供されている場合] のパッケージ README ファイルの README タブで確認できます。 ![[README] タブが選択された NuGet パッケージ マネージャー ウィンドウを示すスクリーンショット。](media/package-manager-package-readme.png)
右側のウィンドウで、ドロップダウン リストから バージョン を選択します。 プレリリース バージョンを バージョンの一 覧に含める場合は、[ プレリリースを含める] を選択します。
NuGet パッケージをインストールするには、[インストール] を選択 します。 ライセンス条項に同意するように求められたり、インストールの確認を求められたりする場合があります。
Visual Studio によって、パッケージとその依存関係がプロジェクトにインストールされます。 インストールが完了すると、[インストール済み] タブに追加されたパッケージが表示されます。パッケージは、ソリューション エクスプローラーでプロジェクトの >パッケージ] ノードで見つけることもできます。 パッケージをインストールした後は、
usingステートメントを使用してプロジェクトで参照できます。(省略可能)NuGet には、プロジェクトでパッケージを使用できる 2 つの形式があります。 PackageReference と packages.configです。既定の形式を設定するには、[ ツール>オプション] を選択し、[ NuGet パッケージ マネージャー] を展開し、[ 全般] を選択してから、 既定のパッケージ管理形式を選択します。 詳細については、「 既定のパッケージ管理形式の選択」を参照してください。
パッケージのアンインストール
NuGet パッケージをアンインストールするには、次の手順に従います。
ソリューション エクスプローラーでプロジェクトを読み込み、Project>Manage NuGet パッケージを選択し、[インストール済み] タブを選択します。
左側のウィンドウでアンインストールするパッケージを選択し (必要に応じて 検索 ボックスを使用して検索)、右側のウィンドウから [アンインストール ] を選択します。
パッケージを更新する
NuGet パッケージを更新するには、次の手順に従います。
ソリューション エクスプローラーでプロジェクトを読み込み、Project>Manage NuGet パッケージを選択します。 Web サイト プロジェクトの場合は、最初に Bin フォルダーを選択します。
[ 更新] タブを選択すると、選択したパッケージ ソースから利用可能な更新プログラムを含むパッケージが表示 されます。 更新プログラムの一覧にプレリリース パッケージを含めるには、[プレリリースを 含める ] を選択します。
更新するパッケージを選択します。 右側のウィンドウで、ドロップダウン リストから目的の バージョン を選択し、[ 更新] を選択します。
一部のパッケージでは、[ 更新 ] ボタンが無効になり、次のメッセージが表示されます。 SDK によって暗黙的に参照されます。パッケージを更新するには、パッケージが属する SDK を更新します。 このメッセージは、パッケージがより大きなフレームワークまたは SDK の一部であり、個別に更新できないことを示します。 このようなパッケージは、内部的に
<IsImplicitlyDefined>True</IsImplicitlyDefined>でマークされます。 たとえば、Microsoft.NETCore.Appは .NET Core SDK の一部であり、パッケージのバージョンはアプリケーションで使用されるランタイム フレームワークのバージョンとは異なります。 新しいバージョンの .NET Core をダウンロードするには、 .NET Core のインストールを更新します。 詳細については、「 .NET Core メタパッケージとバージョン管理」を参照してください。 このシナリオは、次の一般的に使用されるパッケージに適用されます。- Microsoft.AspNetCore.All
- Microsoft.AspNetCore.App
- Microsoft.NETCore.App
- NETStandard.Library
複数のパッケージを最新バージョンに更新するには、NuGet パッケージの一覧でパッケージを選択し、[ 更新] を選択します。
[ インストール済み ] タブから個々のパッケージを更新することもできます。この場合は、[ バージョン ] と [ プレリリースを含める ] オプションを選択することもできます。
ソリューションのパッケージを管理する
ソリューションのパッケージの管理は、複数のプロジェクトを同時に操作するのに便利な方法です。
ソリューション マネージャーでソリューションを選択し、ツール>NuGet パッケージ マネージャー>ソリューションの NuGet パッケージの管理を選択します。
[ ソリューションの NuGet パッケージの管理 ] ウィンドウで、操作の影響を受けるプロジェクトを選択します。
[統合] タブ
開発者は通常、同じソリューション内の異なるプロジェクト間で同じ NuGet パッケージの異なるバージョンを使用することは不適切な方法と考えます。 Visual Studio では、NuGet パッケージに共通バージョンを使用できます。 これを行うには、[NuGet パッケージ マネージャー] ウィンドウの [統合] タブを使用して、異なるバージョン番号を持つパッケージがソリューション内の異なるプロジェクトによって使用されている場所を検出します。
この例では、ClassLibrary1 プロジェクトは EntityFramework 6.2.0 を使用し、ConsoleApp1 は EntityFramework 6.1.0 を使用しています。 パッケージ バージョンを統合するには、次の手順に従います。
[ 統合 ] タブで、プロジェクトの一覧で更新するプロジェクトを選択します。
[バージョン] ボックスの一覧で、これらすべてのプロジェクトに使用する バージョン を選択します。
[インストール] を選択します。
NuGet パッケージ マネージャーは、選択したパッケージ バージョンを選択したすべてのプロジェクトにインストールします。その後、パッケージは [ 統合 ] タブに表示されなくなります。
パッケージ ソース
Visual Studio はパッケージ ソースの順序を無視し、要求に最初に応答するソースのパッケージを使用します。 詳細については、「パッケージの 復元」を参照してください。 特定のソースからパッケージを読み込む方法については、「 パッケージ ソースマッピング」を参照してください。
Visual Studio がパッケージ メタデータを読み込むソースを変更するには、 パッケージ ソース セレクターからソースを選択します。
パッケージ ソースを管理するには、[ 設定] アイコンを選択するか、[ ツール>オプション] を選択します。
NuGet パッケージ ソースを管理するには、 Visual Studio の「NuGet オプション」を参照してください。
NuGet パッケージ マネージャーのオプション コントロール
パッケージを選択すると、NuGet パッケージ マネージャーの [バージョン] セレクターの下に展開可能なオプション コントロールが表示されます。 ほとんどのプロジェクトの種類では、[ プレビュー ウィンドウの表示 ] オプションのみが表示されます。
次のセクションでは、使用可能なオプションについて説明します。
インストールと更新のオプション
これらのオプションは、特定のプロジェクトの種類でのみ使用できます。
依存関係の動作: このオプションは、インストールする依存パッケージのバージョンを NuGet が決定する方法を構成します。 これには次の設定があります。
- 依存関係を無視 すると依存関係のインストールがスキップされ、通常はインストールされているパッケージが中断されます。
- [既定値] が最も小さい場合は、プライマリで選択されたパッケージの要件を満たす最小バージョン番号で依存関係がインストールされます。
- 最も高いパッチ は、同じメジャーバージョン番号とマイナーバージョン番号を持つバージョンをインストールしますが、パッチ番号は最も高くなります。 たとえば、バージョン 1.2.2 が指定されている場合、1.2 で始まる最上位バージョンがインストールされます
- 最上位マイナー では、メジャー バージョン番号は同じですが、マイナー番号とパッチ番号が最も大きいバージョンがインストールされます。 バージョン 1.2.2 が指定されている場合、1 で始まる最上位バージョンがインストールされます
- Highest では、使用可能なパッケージの最高バージョンがインストールされます。
ファイル競合アクション: このオプションは、プロジェクトまたはローカル コンピューターに既に存在するパッケージを NuGet で処理する方法を指定します。 これには次の設定があります。
- プロンプト は、既存のパッケージを保持するか上書きするかを NuGet に指示します。
- [すべて無視] は、既存のパッケージの上書きをスキップするように NuGet に指示します。
- すべて上書き すると、既存のパッケージを上書きするように NuGet に指示されます。
アンインストール オプション
これらのオプションは、特定のプロジェクトの種類でのみ使用できます。
依存関係の削除: 選択すると、依存パッケージがプロジェクト内の他の場所で参照されていない場合は、すべての依存パッケージが削除されます。
依存関係がある場合でも強制的にアンインストールする: 選択すると、プロジェクト内でまだ参照されている場合でもパッケージがアンインストールされます。 このオプションは通常、[ 依存関係の削除 ] と組み合わせて使用され、パッケージとインストールされている依存関係を削除します。 ただし、このオプションを使用すると、プロジェクト内の参照が壊れる可能性があります。 このような場合は、 それらの他のパッケージを再インストールする必要があります。
関連動画
こちらも参照ください
NuGet の詳細については、次の記事を参照してください。