NuGet パッケージ マネージャーを使用して Visual Studio にパッケージをインストールして管理するInstall and manage packages in Visual Studio using the NuGet Package Manager

Windows 上の Visual Studio 内で NuGet パッケージ マネージャー UI を使用すると、プロジェクトやソリューション内で NuGet パッケージを簡単にインストール、アンインストール、更新することができます。The NuGet Package Manager UI in Visual Studio on Windows allows you to easily install, uninstall, and update NuGet packages in projects and solutions. Visual Studio for Mac でのエクスペリエンスについては、「プロジェクトに NuGet パッケージを含める」をご覧ください。For the experience in Visual Studio for Mac, see Including a NuGet package in your project. パッケージ マネージャー UI は、Visual Studio Code には含まれていません。The Package Manager UI is not included with Visual Studio Code.

注意

Visual Studio 2015 内に NuGet パッケージ マネージャーが見当たらない場合は、 [ツール] > [拡張機能と更新プログラム] を確認して、 [NuGet パッケージ マネージャー] 拡張機能を検索してください。If you're missing the NuGet Package Manager in Visual Studio 2015, check Tools > Extensions and Updates... and search for the NuGet Package Manager extension. Visual Studio 内で拡張機能のインストーラーを使用できない場合は、拡張機能を https://dist.nuget.org/index.html から直接ダウンロードしてください。If you're unable to use the extensions installer in Visual Studio, download the extension directly from https://dist.nuget.org/index.html.

Visual Studio 2017 以降では、NuGet および NuGet パッケージ マネージャーが、.NET 関連のワークロードと共に自動的にインストールされます。Starting in Visual Studio 2017, NuGet and the NuGet Package Manager are automatically installed with any .NET-related workloads. 個別にインストールするには、Visual Studio のインストーラー内で [個別のコンポーネント ] > [コード ツール] > [NuGet パッケージ マネージャー] オプションを選択します。Install it individually by selecting the Individual components > Code tools > NuGet package manager option in the Visual Studio installer.

パッケージを検索してインストールするFind and install a package

  1. ソリューション エクスプローラー上で、 [参照] またはプロジェクトのどちらかを右クリックし、 [NuGet パッケージの管理] を選択します。In Solution Explorer, right-click either References or a project and select Manage NuGet Packages....

    [NuGet パッケージの管理] メニュー オプション

  2. [参照] タブには、現在選択されているソースからの人気度順に、パッケージが表示されます (「パッケージ ソース」を参照)。The Browse tab displays packages by popularity from the currently selected source (see package sources). 左上の検索ボックスを使用して、特定のパッケージを検索します。Search for a specific package using the search box on the upper left. 一覧からパッケージを選択して、その情報を表示します。また、これにより、バージョン選択のドロップダウンと共に [インストール] ボタンが有効になります。Select a package from the list to display its information, which also enables the Install button along with a version-selection drop-down.

    [NuGet パッケージの管理] ダイアログの [参照] タブ

  3. ドロップダウンから目的のバージョンを選び、 [インストール] を選択します。Select the desired version from the drop-down and select Install. Visual Studio によって、パッケージとその依存関係がプロジェクトにインストールされます。Visual Studio installs the package and its dependencies into the project. ライセンス条項への同意を求められる場合があります。You may be asked to accept license terms. インストールが完了すると、追加したパッケージが [インストール済み] タブ上に表示されます。また、パッケージがソリューション エクスプローラーの [参照] ノードに一覧表示されます。using ステートメントを使用すると、プロジェクト内でそれらを参照できることを意味します。When installation is complete, the added packages appear on the Installed tab. Packages are also listed in the References node of Solution Explorer, indicating that you can refer to them in the project with using statements.

    ソリューション エクスプローラー内の [参照]

ヒント

検索にプレリリースバージョンを含めるため、また、バージョンのドロップダウン内でプレリリース バージョンを使用可能にするためには、 [プレリリースを含める] オプションを選択します。To include prerelease versions in the search, and to make prerelease versions available in the version drop-down, select the Include prerelease option.

注意

NuGet には、プロジェクトでパッケージを使用できる、PackageReferencepackages.config の 2 つの形式があります。NuGet has two formats in which a project may use packages: PackageReference and packages.config. 既定値は、Visual Studio のオプション ウィンドウで設定できますThe default can be set in Visual Studio's options window.

パッケージをアンインストールしますUninstall a package

  1. ソリューション エクスプローラー上で、 [参照] または目的のプロジェクトのどちらかを右クリックし、 [NuGet パッケージの管理] を選択します。In Solution Explorer, right-click either References or the desired project, and select Manage NuGet Packages....

  2. [インストール済み] タブを選択します。Select the Installed tab.

  3. アンインストールするパッケージを選択し (必要に応じて、検索を使用して一覧をフィルター処理します)、 [アンインストール] を選択します。Select the package to uninstall (using search to filter the list if necessary) and select Uninstall.

    パッケージのアンインストール

  4. パッケージのアンインストール時には、 [プレリリースを含める]および[パッケージ ソース] の制御は無効になっていることに注意してください。Note that the Include prerelease and Package source controls have no effect when uninstalling packages.

パッケージを更新するUpdate a package

  1. ソリューション エクスプローラー上で、 [参照] または目的のプロジェクトのどちらかを右クリックし、 [NuGet パッケージの管理] を選択します。(Web サイトのプロジェクトでは、Bin フォルダーを右クリックします)。In Solution Explorer, right-click either References or the desired project, and select Manage NuGet Packages.... (In web site projects, right-click the Bin folder.)

  2. [更新] タブを選択して、選択されたパッケージ ソースからの使用可能な更新プログラムがあるパッケージを確認します。Select the Updates tab to see packages that have available updates from the selected package sources. [プレリリースを含める] を選択して、更新リストにあるプレリリース パッケージを含めます。Select Include prerelease to include prerelease packages in the update list.

  3. 更新するパッケージを選択し、右側にあるドロップダウンから目的のバージョンを選択して、 [更新] を選択します。Select the package to update, select the desired version from the drop-down on the right, and select Update.

    パッケージの更新

  4. 一部のパッケージでは、 [更新] ボタンが無効になり、"SDK によって暗黙的に参照されています" というメッセージ (または "AutoReferenced") が表示されます。For some packages, the Update button is disabled and a message appears saying that it's "Implicitly referenced by an SDK" (or "AutoReferenced"). このメッセージは、パッケージがより大きなフレームワークまたは SDK の一部であり、個別に更新してはいけないことを示しています。This message indicates that the package is part of a larger framework or SDK and should not be updated independently. (このようなパッケージは、内部的に <IsImplicitlyDefined>True</IsImplicitlyDefined> とマークされています。)たとえば、Microsoft.NETCore.App は .NET Core SDK の一部であり、パッケージ バージョンは、アプリケーションによって使用されるランタイム フレームワークのバージョンと同じではありません。(Such packages are internally marked with <IsImplicitlyDefined>True</IsImplicitlyDefined>.) For example, Microsoft.NETCore.App is part of the .NET Core SDK, and the package version is not the same as the version of the runtime framework used by the application. ご自身の .NET Core インストールを更新して、ASP.NET Core および .NET Core ランタイムの新しいバージョンを取得する必要があります。You need to update your .NET Core installation to get new versions of the ASP.NET Core and .NET Core runtime. .NET Core メタパッケージとバージョン管理の詳細については、こちらのドキュメントをご覧くださいSee this document for more details on .NET Core metapackages and versioning. これは、一般的に使用されている次のパッケージに該当します。This applies to the following commonly used packages:

    • Microsoft.AspNetCore.AllMicrosoft.AspNetCore.All
    • Microsoft.AspNetCore.AppMicrosoft.AspNetCore.App
    • Microsoft.NETCore.AppMicrosoft.NETCore.App
    • NETStandard.LibraryNETStandard.Library

    暗黙的な参照または AutoReferenced としてマークされたパッケージの例

  5. 複数のパッケージをそれぞれの最新バージョンに更新するには、リスト内で選択して、リストの上にある [更新] ボタンを選択します。To update multiple packages to their newest versions, select them in the list and select the Update button above the list.

  6. また、 [インストール済み] タブから個々のパッケージを更新することもできます。この場合、パッケージの詳細にはバージョン セレクター ( [プレリリースを含める] オプションに依存します) と [更新] ボタンが含まれています。You can also update an individual package from the Installed tab. In this case, the details for the package include a version selector (subject to the Include prerelease option) and an Update button.

ソリューションのパッケージの管理Manage packages for the solution

ソリューションのパッケージの管理は、複数のプロジェクトを同時に操作するための便利な手段です。Managing packages for a solution is a convenient means to work with multiple projects simultaneously.

  1. [ツール] > [NuGet パッケージ マネージャー] > [ソリューションの NuGet パッケージの管理] メニュー コマンドを選択するか、ソリューションを右クリックして [NuGet パッケージの管理] を選択します。Select the Tools > NuGet Package Manager > Manage NuGet Packages for Solution... menu command, or right-click the solution and select Manage NuGet Packages...:

    ソリューションの NuGet パッケージの管理

  2. ソリューションのパッケージを管理する場合、UI を利用して、操作によって影響を与えるプロジェクトを選択できます。When managing packages for the solution, the UI lets you select the projects that are affected by the operations:

    ソリューションのパッケージを管理する場合のプロジェクト セレクター

[統合] タブConsolidate tab

開発者は通常、同じソリューション内のさまざまなプロジェクト間で同じ NuGet パッケージの異なるバージョンを使用することは不適切であると考えています。Developers typically consider it bad practice to use different versions of the same NuGet package across different projects in the same solution. ソリューションの NuGet パッケージを管理することを選んだ場合、パッケージ マネージャー UI に [統合] タブが表示され、個別のバージョン番号が付与されたパッケージがソリューション内のさまざまなプロジェクトによってどこに使用されているかを簡単に確認できます。When you choose to manage packages for a solution, the Package Manager UI provides a Consolidate tab on which you can easily see where packages with distinct version numbers are used by different projects in the solution:

パッケージ マネージャー UI の [統合] タブ

この例では、ClassLibrary1 プロジェクトが EntityFramework 6.2.0 を使用しているのに対して、ConsoleApp1 は EntityFramework 6.1.0 を使用しています。In this example, the ClassLibrary1 project is using EntityFramework 6.2.0, whereas ConsoleApp1 is using EntityFramework 6.1.0. パッケージ バージョンを統合するには、次を実行します。To consolidate package versions, do the following:

  • プロジェクトの一覧で、更新するプロジェクトを選択します。Select the projects to update in the project list.
  • EntityFramework 6.2.0 など、 [バージョン] コントロール内でそれらすべてのプロジェクトに使用するバージョンを選択します。Select the version to use in all those projects in the Version control, such as EntityFramework 6.2.0.
  • [インストール] ボタンを選択します。Select the Install button.

パッケージ マネージャーによって、選択されたすべてのプロジェクトに対して、選択されたパッケージ バージョンがインストールされます。パッケージは [統合] タブ上には表示されなくなります。The Package Manager installs the selected package version into all selected projects, after which the package no longer appears on the Consolidate tab.

パッケージ ソースPackage sources

Visual Studio がパッケージを取得するソースを変更するには、ソース セレクターから選択します。To change the source from which Visual Studio obtains packages, select one from the source selector:

パッケージ マネージャー UI のパッケージ ソース セレクター

パッケージ ソースを管理するには:To manage package sources:

  1. 以下に示したパッケージ マネージャー UI にある設定のアイコンを選択するか、 [ツール] > [オプション] コマンドを使用して [NuGet パッケージ マネージャー] までスクロールします。Select the Settings icon in the Package Manager UI outlined below or use the Tools > Options command and scroll to NuGet Package Manager:

    パッケージ マネージャー UI の設定のアイコン

  2. [パッケージ ソース] ノードを選択します。Select the Package Sources node:

    [パッケージ ソース] オプション

  3. ソースを追加するには、 + を選択して、名前を編集し、 [ソース] コントロールに URL またはパスを入力して、 [更新] を選択します。To add a source, select +, edit the name, enter the URL or path in the Source control, and select Update. ソースがセレクターのドロップダウンに表示されるようになりました。The source now appears in the selector drop-down.

  4. パッケージ ソースを変更するには、それを選択して [名前][ソース] ボックス内で編集を行い、 [更新] を選択します。To change a package source, select it, make edits in the Name and Source boxes, and select Update.

  5. パッケージ ソースを無効にするには、一覧内で名前の左側にあるボックスをオフにします。To disable a package source, clear the box to the left of the name in the list.

  6. パッケージ ソースを削除するには、それを選択してから、X ボタンを選択します。To remove a package source, select it and then select the X button.

  7. 上下の矢印ボタンを使用しても、パッケージ ソースの優先順位は変更されません。Using the up and down arrow buttons does not change the priority order of the package sources. Visual Studio では、パッケージ ソースの順序は無視され、要求に最初に応答したいずれかのソースからパッケージが使用されます。Visual Studio ignores the order of package sources, using the package from whichever source is first to respond to requests. 詳しくは、パッケージの復元に関する記事をご覧ください。For more information, see Package restore.

ヒント

削除後にパッケージ ソースが再表示される場合は、コンピューター レベルまたはユーザー レベルの NuGet.Config ファイルに含まれている可能性があります。If a package source reappears after deleting it, it may be listed in a computer-level or user-level NuGet.Config files. これらのファイルの場所について「一般的な NuGet 構成」で確認してから、nuget ソース コマンドを使用して手動でファイルを編集して、ソースを削除してください。See Common NuGet configurations for the location of these files, then remove the source by editing the files manually or using the nuget sources command.

パッケージ マネージャーの [オプション] コントロールPackage manager Options control

パッケージが選択されると、パッケージ マネージャー UI では、バージョン セレクターの下に展開可能な小さな [オプション] コントロールが表示されます (ここでは、折りたたまれた状態と展開された状態の両方が示されています)。When a package is selected, the Package Manager UI displays a small, expandable Options control below the version selector (shown here both collapsed and expanded). 一部のプロジェクトの種類では、 [プレビュー ウィンドウの表示] オプションのみが提示されることに注意してください。Note that for some project types, only the Show preview window option is provided.

パッケージ マネージャーのオプション

以降のセクションでは、これらのオプションについて説明します。The following sections explain these options.

プレビュー ウィンドウの表示Show preview window

選択すると、パッケージがインストールされる前に、選択したパッケージの依存関係がモ―ダル ウィンドウに表示されます。When selected, a modal window displays which the dependencies of a chosen package before the package is installed:

プレビュー ダイアログの例

インストールと更新のオプションInstall and Update Options

(すべてのプロジェクトの種類で使用できるわけではありません。)(Not available for all project types.)

[依存関係の動作] では、インストールする依存パッケージのバージョンが NuGet によってどのように決定されるかを設定します。Dependency behavior configures how NuGet decides which versions of dependent packages to install:

  • [依存関係を無視する] では、すべての依存関係のインストールをスキップします。通常は、パッケージのインストールが中断されます。Ignore dependencies skips installing any dependencies, which typically breaks the package being installed.
  • [最低] (既定値) では、選択された主要なパッケージの要件に合う最小のバージョン番号を使用して、依存関係がインストールされます。Lowest [Default] installs the dependency with the minimal version number that meets the requirements of the primary chosen package.
  • [最高のパッチ] では、メジャーおよびマイナーのバージョン番号が同じで、パッチ番号が最も大きいバージョンがインストールされます。Highest Patch installs the version with the same major and minor version numbers, but the highest patch number. たとえば、バージョン 1.2.2 が指定された場合、1.2 から始まる最高のバージョンがインストールされますFor example, if version 1.2.2 is specified then the highest version that starts with 1.2 will be installed
  • [最高のマイナー] では、メジャーのバージョン番号が同じで、マイナー番号とパッチ番号が最も大きいバージョンがインストールされます。Highest Minor installs the version with the same major version number but the highest minor number and patch number. バージョン 1.2.2 が指定された場合、1 から始まる最高のバージョンがインストールされますIf version 1.2.2 is specified, then the highest version that starts with 1 will be installed
  • [最高] では、使用可能な最高のパッケージ バージョンがインストールされます。Highest installs the highest available version of the package.

[ファイルの競合時のアクション] では、プロジェクト内またはローカル コンピューター上に既に存在するパッケージを NuGet ではどのように処理するべきかを指定します。File conflict action specifies how NuGet should handle packages that already exist in the project or local machine:

  • [プロンプト] では、既存のパッケージを保持するか上書きするかを尋ねるように NuGet に指示します。Prompt instructs NuGet to ask whether to keep or overwrite existing packages.
  • [すべて無視] では、すべての既存のパッケージの上書きをスキップするように NuGet に指示します。Ignore All instructs NuGet to skip overwriting any existing packages.
  • [すべて上書き] では、すべての既存のパッケージを上書きするように NuGet に指示します。Overwrite All instructs NuGet to overwrite any existing packages.

アンインストールのオプションUninstall Options

(すべてのプロジェクトの種類で使用できるわけではありません。)(Not available for all project types.)

[依存関係の削除] : 選択すると、プロジェクト内の他の場所で参照されていない場合は、依存パッケージがすべて削除されます。Remove dependencies: when selected, removes any dependent packages if they're not referenced elsewhere in the project.

[依存関係が存在する場合でも強制的にアンインストールする] : 選択すると、プロジェクト内でまだ参照されている場合でも、パッケージがアンインストールされます。Force uninstall even if there are dependencies on it: when selected, uninstalls a package even if it's still being referenced in the project. これは通常、パッケージとそれによってインストールされたあらゆる依存関係を削除するために、 [依存関係の削除] と組み合わせて使用されます。This is typically used in combination with Remove dependencies to remove a package and whatever dependencies it installed. ただし、このオプションを使用すると、プロジェクト内での参照が壊れてしまう場合があります。Using this option may, however, lead to broken references in the project. このような場合、必要に応じて他のパッケージを再インストールする必要があります。In such cases, you may need to reinstall those other packages.