パッケージ利用のワークフローPackage consumption workflow

nuget.org と組織が確立する可能性のあるプライベート パッケージ ギャラリーの間で、アプリとサービスで使用する数万の非常に有用なパッケージを見つけることができます。Between nuget.org and private package galleries that your organization might establish, you can find tens of thousands of highly useful packages to use in your apps and services. ただし、ソースに関係なく、パッケージを利用する場合は一般的なワークフローに従います。But regardless of the source, consuming a package follows the same general workflow.

パッケージ ソースへの移動、パッケージの検索、プロジェクトへのインストール、パッケージ API への using ステートメントと呼び出しの追加を示すフロー

* Visual Studio および dotnet.exe のみ。nuget install コマンドは、プロジェクト ファイルまたは packages.config ファイルを変更しません。エントリは、手動で管理する必要があります。* Visual Studio and dotnet.exe only. The nuget install command does not modify project files or the packages.config file; entries must be managed manually.

詳細については、「プロジェクトの NuGet パッケージの検索と評価」および「パッケージ インストールのしくみ」を参照してください。For further details, see Finding and Choosing Packages and What happens when a package is installed?.

NuGet では、インストールされている各パッケージの ID とバージョン番号が記憶されます。これは、プロジェクトの種類と使用している NuGet のバージョンに応じて、プロジェクト ファイル (PackageReference を使用) または packages.config のいずれかに記録されます。NuGet remembers the identity and version number of each installed package, recording it in either the project file (using PackageReference) or packages.config, depending on project type and your version of NuGet. PackageReference はパッケージ マネージャーの UI を利用して Visual Studio で構成できますが、NuGet 4.0 以降では、PackageReference をお勧めします。With NuGet 4.0+, PackageReference is preferred, although this is configurable in Visual Studio through the Package Manager UI. いずれの場合も、適切なファイルでいつでもプロジェクトの依存関係の完全なリストを確認することができます。In any case, you can look in the appropriate file at any time to see the full list of dependencies for your project.

ヒント

ソフトウェアで使用する予定の各パッケージのライセンスを常に確認することをお勧めます。It's prudent to always check the license for each package you intend to use in your software. nuget.org には、各パッケージの説明ページの右側に [ライセンス情報] リンクが表示されます。On nuget.org, you find a License Info link on the right side of each package's description page. パッケージでライセンス条項が指定されていない場合は、パッケージ ページの [Contact owners](所有者に問い合わせる) リンクを使用して、パッケージ所有者に直接問い合わせてください。If a package does not specify license terms, contact the package owner directly using the Contact owners link on the package page. Microsoft はサードパーティのパッケージ プロバイダーを通じてユーザーに知的財産ライセンスを付与することはありません。また、サードパーティによって提供される情報について責任を負いません。Microsoft does not license any intellectual property to you from third party package providers and is not responsible for information provided by third parties.

パッケージのインストール時に、NuGet は通常、パッケージがそのキャッシュから既に使用可能であるかどうかを確認します。When installing packages, NuGet typically checks if the package is already available from its cache. Managing the global packages and cache folders」 (グローバル パッケージおよびキャッシュ フォルダーを管理する) で説明されているように、コマンド ラインからこのキャッシュを手動でクリアすることができます。You can manually clear this cache from the command line, as described on Managing the global packages and cache folders.

また、NuGet は、パッケージでサポートされるターゲット フレームワークがプロジェクトと互換性があることを確認します。NuGet also makes sure that the target frameworks supported by the package are compatible with your project. パッケージに互換性のあるアセンブリが含まれていない場合、NuGet はエラーを示します。If the package does not contain compatible assemblies, NuGet displays an error. 互換性のないパッケージのエラーの解決」を参照してください。See Resolving incompatible package errors.

プロジェクト コードをソース リポジトリを追加する場合、通常は NuGet パッケージを含めません。When adding project code to a source repository, you typically don't include NuGet packages. Visual Studio Team Services などのシステムのビルド エージェントを含む、リポジトリを後で複製するか、そうでない場合はプロジェクトを取得するユーザーは、ビルドを実行する前に必要なパッケージを復元する必要があります。Those who later clone the repository or otherwise acquire the project, including build agents on systems like Visual Studio Team Services, must restore the necessary packages prior to running a build:

リポジトリの複製およびいずれかの復元コマンドの使用による NuGet パッケージの復元フロー

パッケージの復元」では、プロジェクト ファイルまたは packages.config の情報を使用して、すべての依存関係を再インストールします。Package Restore uses the information in the project file or packages.config to reinstall all dependencies. Dependency Resolution」 (依存関係の解決) で説明されているように、関係するプロセスには違いがあることに注意してください。Note that there are differences in the process involved, as described in Dependency Resolution. また、上図にはパッケージ マネージャー コンソールの復元コマンドは示されていませんが、これはコンソールで作業している場合、既に Visual Studio のコンテキスト内にいるからです。この場合は通常、パッケージは自動で復元され、図に示されているようにソリューション レベルのコマンドが提供されます。Also, the diagram above does not show a restore command for the Package Manager Console because if you're with the Console you're already in the context of Visual Studio, which typically restores packages automatically and provides the solution-level command as shown.

場合によっては、プロジェクトに既に含まれているパッケージの再インストールが必要になります。その場合、依存関係も再インストールされる可能性があります。Occasionally it's necessary to reinstall packages that are already included in a project, which may also reinstall dependencies. これは、nuget reinstall コマンド使用するか、NuGet パッケージ マネージャー コンソールを使用して簡単に行うことができます。This is easy to do using the nuget reinstall command or the NuGet Package Manager Console. 詳細については、「Reinstalling and Updating Packages」 (パッケージの再インストールと更新) を参照してください。For details, see Reinstalling and Updating Packages.

最後に、NuGet の動作は Nuget.Config ファイルによって駆動されます。Finally, NuGet's behavior is driven by Nuget.Config files. Configuring NuGet Behavior」 (NuGet の動作の構成) で説明されているように、複数のファイルを使用して、さまざまなレベルの特定の設定を一元化することができます。Multiple files can be used to centralize certain settings at different levels, as explained in Configuring NuGet Behavior.

NuGet パッケージのインストール方法Ways to install a NuGet Package

NuGet パッケージは、次の表にあるメソッドのいずれかを使用して、ダウンロードされ、インストールされます。NuGet packages are downloaded and installed using any of the methods in the following table.

ツールTool 説明Description
dotnet.exe CLIdotnet.exe CLI (すべてのプラットフォーム) .NET Core と .NET Standard ライブラリ、および .NET Framework を対象とする SDK スタイルのプロジェクト (「SDK 属性」を参照) のための CLI ツール。(All platforms) CLI tool for .NET Core and .NET Standard libraries, and for SDK-style projects that target .NET Framework (see SDK attribute). <package_name> によって指定されたパッケージを取得し、参照をプロジェクト ファイルに追加します。Retrieves the package identified by <package_name> and adds a reference to the project file. また、依存関係も取得してインストールします。Also retrieves and installs dependencies.
Visual StudioVisual Studio (Windows および Mac) 用意された UI を使用して、指定したパッケージ ソースからパッケージとその依存関係を参照して選択し、プロジェクトにインストールできます。(Windows and Mac) Provides a UI through which you can browse, select, and install packages and their dependencies into a project from a specified package source. インストールされたプロジェクトへの参照をプロジェクト ファイルに追加します。Adds references to installed packages to the project file.
Visual Studio の PowerShellPowerShell in Visual Studio (Windows のみ) 選択したソースから、<package_name> で指定したパッケージを取得して、ソリューションで指定されたプロジェクトにインストールし、参照をプロジェクト ファイルに追加します。(Windows only) Retrieves and installs the package identified by <package_name> from a selected source into a specified project in the solution, then adds a reference to the project file. また、依存関係も取得してインストールします。Also retrieves and installs dependencies.
nuget.exe CLInuget.exe CLI (すべてのプラットフォーム) .NET Framework ライブラリと、.NET Standard ライブラリを対象とする非 SDK スタイルのプロジェクトのための CLI ツール。(All platforms) CLI tool for .NET Framework libraries and non-SDK-style projects that target .NET Standard libraries. <package_name> で指定したパッケージを取得して、その内容を現在のディレクトリのフォルダーに展開します。packages.config ファイルでリストされたすべてのパッケージを取得することもできます。Retrieves the package identified by <package_name> and expands its contents into a folder in the current directory; can also retrieve all packages listed in a packages.config file. また、依存関係を取得してインストールしますが、プロジェクト ファイルまたは packages.config は変更されません。Also retrieves and installs dependencies, but makes no changes to project files or packages.config.