.NET プロジェクトを開始するとき、またはアプリまたはサービスの機能的ニーズを特定する場合、多くの場合、既存の NuGet パッケージをインストールして 、独自のパッケージを作成する時間と手間を省くことができます。 既存のパッケージは、 nuget.org パブリック コレクションから取得することも、組織や他のパーティが提供するプライベート ソースから取得することもできます。
パッケージを検索する
パッケージは、 https://nuget.org/packagesから直接、またはソースとして nuget.org を使用して Visual Studio パッケージ マネージャー UI または パッケージ マネージャー コンソール から見つけることができます。 nuget.org のすべてのパッケージは、ウイルスを定期的にスキャンします。
nuget.org/packages では、すべての .NET プロジェクトで最も人気のあるパッケージを含む NuGet パッケージの一覧が最初に一覧表示されます。 これらのパッケージの一部は、プロジェクトに役立つ場合があります。
パッケージを検索するには、ページの上部にある [検索] ボックスにパッケージ名または検索語句を入力します。 高度な検索構文を使用して、検索をフィルター処理できます。
高度なフィルタリングとソート
nuget.org/packages では、高度なフィルター処理と並べ替えオプションを使用して検索結果を絞り込むことができます。
フレームワーク フィルターを使用して、特定 の .NET フレームワークを対象とするパッケージを表示します (詳細については、「 ターゲット フレームワーク」を参照してください)。
.NET Framework 生成チェックボックスのいずれかを選択すると、検索結果がフィルター処理され、その生成内の個々のターゲット フレームワークと互換性のあるパッケージが表示されます。 たとえば、
.NETを選択すると、net5.0を介したnet8.0など、最新の .NET フレームワークと互換性のあるパッケージが返されます。
右側の矢印を使用してこれらのフレームワーク世代の 1 つを展開すると、結果をフィルター処理できる個々のターゲット フレームワーク モニカー (TFM) が表示されます。 たとえば、
net5.0を選択すると、'.NET 5.0' フレームワークと互換性のあるパッケージが返されます。既定では、パッケージは、計算された互換性のあるフレームワークの展開された一覧によってフィルター処理されます。 明示的にターゲットとするアセット フレームワークによってパッケージをフィルター処理する場合は、[ 互換性のあるフレームワークを含める ] チェック ボックスをオフにします。
複数のフレームワーク フィルターを組み合わせると、選択したすべてのフィルター (選択したフィルターの共通部分に含まれるパッケージ) に一致する検索結果が表示されます。 たとえば、
netcoreapp3.1とnet45を一緒に選択すると、'.NET Core 3.1' と '.NET Framework 4.5' の 両方 を対象とするパッケージが表示されます。.NET Coreフレームワーク生成チェックボックスとnet45チェックボックスを一緒に選択すると、'.NET Framework 4.5' を対象とするパッケージと、少なくとも 1 つの '.NET Core' TFM (netcoreapp1.0を介してnetcoreapp3.1) が返されます。- または、いずれかのフレームワーク フィルターに一致するパッケージを表示する場合は、[フレームワーク フィルター モード] オプションの [任意] ラジオ ボタンを選択します。 ここで、
netcoreapp3.1とnet5.0を選択すると、'.NET Core 3.1' または '.NET 5.0' を ターゲットとするパッケージが表示されます。netcoreapp3.1チェックボックスと.NETフレームワーク生成チェックボックスを同時に選択すると、「.NET Core 3.1」または「.NET」のいずれかのTFM (net5.0からnet8.0) をターゲットとするパッケージが返されます。
- または、いずれかのフレームワーク フィルターに一致するパッケージを表示する場合は、[フレームワーク フィルター モード] オプションの [任意] ラジオ ボタンを選択します。 ここで、
パッケージでサポートされているフレームワークとプロジェクトとの互換性を評価する方法の詳細については、 こちらをご覧ください。
[パッケージの種類] フィルターを使用して、特定の種類のパッケージを表示します。
- すべての型 が既定値であり、種類に関係なくすべてのパッケージが表示されます。
- 依存関係 フィルターは、プロジェクトにインストールできる通常の NuGet パッケージに適用されます。
- .NET ツール は、コンソール アプリケーションを含む .NET ツール パッケージにフィルター処理します。
- テンプレート は、dotnet new コマンドを使用して新しいプロジェクトを作成するために使用できる .NET テンプレートにフィルター処理します。
既定では、NuGet にはプレリリースバージョンとベータ版を含むすべてのバージョンのパッケージが一覧表示されます。 [ オプション] セクションで、[ プレリリースを含める ] チェックボックスをオフにして、安定したリリース済みパッケージ バージョンのみを一覧表示します。
変更を適用するには、[ 適用] を選択します。 既定値に戻すには、[リセット] を選択 します。
ページの右上にある [ 並べ替え ] ドロップダウンを使用して、いくつかの条件でリストを並べ替えます。
- 関連性 が既定で、内部スコアリング アルゴリズムに従って結果が並べ替えられます。
- ダウンロード では、検索結果がダウンロードの合計数で降順に並べ替えられます。
- 最近更新 された場合、最新のパッケージ バージョンの作成日で、時系列順に検索結果が並べ替えられます。
検索構文
パッケージ検索クエリは、nuget.org、NuGet CLI、および Visual Studio 内からすべて同じ構文を使用します。 Azure Artifacts や GitHub Package Repository などの他のパッケージ ソースでは、異なる構文が使用されたり、高度なフィルター処理がサポートされていない場合があります。
構文
idを使用して、パッケージのpackageid、version、title、tagsauthor、description、summary、owner、または<property>:<term>プロパティを検索できます。検索はキーワードと説明に適用され、大文字と小文字は区別されません。 たとえば、次の文字列はすべて、文字列
idのnuget.coreプロパティを検索します。id:NuGet.Core
ID:nuget.core
Id:NUGET.COREidプロパティの検索は部分文字列と一致しますが、packageidとownerは大文字と小文字を区別しない完全一致を使用します。 例えば次が挙げられます。PackageId:jqueryは、正確なパッケージ IDjqueryを検索します。
Id:jqueryは、文字列jqueryを含むすべてのパッケージ ID を検索します。複数の値またはプロパティを同時に検索できます。 例えば次が挙げられます。
id:jquery id:uiは、idプロパティで複数の用語を検索します。
id:jquery tags:validationでは、複数のプロパティが検索されます。検索ではサポートされていないプロパティが無視されるため、
invalid:jquery uiはuiの検索と同じであり、invalid:jqueryはすべてのパッケージを返します。
サポートされているフレームワークを決定する
NuGet は、パッケージのサポートされている .NET フレームワークにプロジェクトのターゲット フレームワークが含まれている場合にのみ、プロジェクトにパッケージをインストールします。 パッケージに互換性がない場合、NuGet はエラーを発行します。
パッケージがサポートするフレームワークを決定するには、いくつかの方法があります。
検索ページでは、パッケージのサポートされているフレームワークが、パッケージ ID の下にバッジとして表示されます。 これらのバッジは、 .NET、 .NET Core、.NETStandard、.NET Framework の世代でサポートされている最も低いフレームワーク バージョンを示しています。 パッケージは、表示されているバッジ バージョン以上のフレームワーク バージョンと互換性があります。
"濃い青色" バッジは明示的にターゲット設定されたフレームワークを表し、'薄い青' バッジは計算された互換性のあるフレームワークを表します。
バッジをクリックすると、nuget.org のパッケージの詳細ページにリダイレクトされます。パッケージ の ページの [フレームワーク] タブには、サポートされているフレームワークの完全な一覧が表示されます。
nuget.org にあるパッケージのページでは、サポートされているフレームワークがパッケージ ID の下と [ フレームワーク ] タブに表示されますが、すべてのパッケージにサポートされているフレームワークが表示されるわけではありません。
[パッケージのダウンロード] を選択して [About] でパッケージを手動でダウンロードします。 ダウンロードしたパッケージのファイル拡張子を .nupkg から .zipに変更し、 .zip フォルダーを開き、その lib フォルダーを調べます。 サポートされているフレームワークごとにサブフォルダーがあり、それぞれターゲット フレームワーク モニカー (TFM) で名前が付けられています。 詳細については、「 ターゲット フレームワーク」を参照してください。 lib の下にサブフォルダーが存在せず、DLL が 1 つしかない場合は、パッケージをインストールして互換性を確認してください。
Visual Studio パッケージ マネージャー コンソールで Install-Package を使用して、プロジェクトにパッケージをインストールしてみてください。 パッケージに互換性がない場合は、コンソール出力にパッケージのサポートされているフレームワークが表示されます。
プレリリース パッケージ
多くのパッケージ作成者は、最新のリビジョンに関するフィードバックを継続的に改善し、求めているため、プレビューリリースとベータ版リリースを提供しています。 既定では、nuget.org はプレリリース パッケージをパッケージ 一覧と検索結果に表示します。
安定したリリースのみを一覧表示して検索するには:
- nuget.org で、高度な検索パネルの [プレリリースを含める ] チェックボックスの選択を解除します。
- Visual Studio NuGet パッケージ マネージャー UI で、[検索] ボックスの横にある [ プレリリースを含める ] チェックボックスの選択を解除します。
Visual Studio パッケージ マネージャー コンソール、NuGet CLI、dotnet CLI ツールには、プレリリース バージョンは既定では含まれません。 プレリリース バージョンを含めるには:
パッケージ マネージャー コンソールで、
-IncludePrerelease、Find-Package、Get-Package、Install-Package、およびSync-PackageコマンドでUpdate-Packageスイッチを使用します。 詳細については、 PowerShell リファレンスを参照してください。NuGet CLI の場合は、
-prerelease、install、update、およびdeleteコマンドでmirrorスイッチを使用します。 詳細については、 NuGet CLI リファレンスを参照してください。dotnet CLI の場合は、
-v引数を使用してプレリリース バージョンを指定します。 詳細については、 dotnet パッケージの追加に関するリファレンスを参照してください。
ネイティブ C++ パッケージ
Visual Studio C++ プロジェクトでは、ネイティブ C++ NuGet パッケージを使用できます。 これらのパッケージをインストールすると、[ NuGet パッケージの管理 ] コンテキスト メニュー コマンドが有効になり、 native ターゲット フレームワークが公開され、MSBuild 統合が提供されます。
nuget.org/packages でネイティブ パッケージを検索するには、 tag:nativeを使用して検索します。 このようなパッケージは通常 、.targets ファイルと .props ファイルを 提供します。このファイルは、パッケージを追加するときに NuGet によって自動的にインポートされます。
パッケージの評価
パッケージの有用性を評価する最善の方法は、試してみる方法です。パッケージを使用する場合は、パッケージに依存するため、堅牢で信頼性の高いパッケージであることを確認する必要があります。 ただし、パッケージをインストールして直接テストするのは時間がかかります。 nuget.org/packages にあるパッケージのページの情報を使用して、パッケージの品質について多くのことを学ぶことができます。
パッケージの一覧とパッケージ ページのパッケージ ID の横にある 予約済みプレフィックス チェック マークは、パッケージ所有者が予約済みパッケージ ID プレフィックスを申請し、付与されたことを意味します。 ID プレフィックスの予約条件を満たすには、パッケージ所有者が自身とそのパッケージを明確に識別する必要があります。
パッケージ ページの右側の列のダウンロードには、合計、現在のバージョン、および 1 日あたりの平均ダウンロード数が表示されます。 大きな数値は、パッケージが多くの開発者の間でそれ自体を証明していることを示しています。
[ダウンロード] の横にある [完全な統計] を選択すると、過去 6 週間のパッケージダウンロードがバージョン番号別に表示されるページが表示されます。 多くの開発者が使用しているバージョンは、通常、より優れた選択肢です。
パッケージ ページの [Used By]\( 使用者\) タブには、このパッケージに依存する最も一般的な nuget.org パッケージと GitHub リポジトリの上位 5 つが表示されます。 このパッケージに依存するパッケージとリポジトリは、 依存と呼ばれます。 依存パッケージとリポジトリは、信頼して依存することを選択したため、このパッケージを承認していると見なすことができます。
依存パッケージの 最新の安定バージョン は、このパッケージの任意のバージョンに依存する必要があります。 この定義により、リストされた依存パッケージが、パッケージの作成者が信頼し依存する決定を最新の状態で反映することが保証されます。 依存リストにはプレリリース依存が表示されません。これは、まだ完全な保証とは見なされないためです。 次の例は、どのパッケージが依存パッケージとして表示するかを示しています。
依存パッケージのバージョン 依存パッケージが依存パッケージとして一覧表示されますか? v1.0.0
v1.1.0 (最新の安定版) は、このパッケージに依存します
v1.2.0-previewTRUE、最新の安定バージョンは、このパッケージに依存します v1.0.0 はこのパッケージに依存します
v1.1.0 (最新の安定版)
v1.2.0-previewFALSE、最新の安定バージョンは、このパッケージに依存しません v1.0.0 はこのパッケージに依存します
v1.1.0 (最新の安定版)
v1.2.0-preview はこのパッケージに依存しますFALSE、最新の安定バージョンは、このパッケージに依存しません GitHub リポジトリの星の数は、GitHub ユーザーに人気があることを示しています。 GitHub のスターとリポジトリのランク付けシステムの詳細については、「 星について」を参照してください。
注
[ Used By]\(使用者 \) セクションは、人間によるレビューなしで、情報提供のみを目的として、定期的に自動的に生成されます。
パッケージ ページ の [バージョン ] タブ には、バージョン、 ダウンロード、 最終更新日 、およびパッケージ バージョンの重大な脆弱性が表示されます。 インストールするバージョンには、重大度の高い脆弱性はありません。 適切に管理されたパッケージには、最新の更新プログラムと長いバージョン履歴があります。 放置されたパッケージは、更新が少なく、かつ過去のものであることが多いです。
パッケージ ページの右側の列には、他の有益なリンクがあります。
[ プロジェクト Web サイト] (使用可能な場合) を選択して、作成者が提供するサポート オプションを確認します。 一般に、専用サイトを持つプロジェクトは十分にサポートされています。
[ ソース リポジトリ] を選択して、パッケージの Git ソース コード リポジトリに移動します。 多くの作成者は、オープンソース リポジトリでパッケージを管理しているため、ユーザーはバグ修正と機能の改善に直接貢献できます。 パッケージの投稿履歴は、積極的に関与している開発者の数を示す適切な指標です。
<ライセンスの種類>ライセンスを選択して、パッケージの MIT またはその他のライセンスを表示します。 パッケージでライセンス条項が指定されていない場合は、パッケージの所有者に問い合わせてください。
所有者 の下にある パッケージ所有者のいずれかを選択して、発行した他のパッケージを表示します。 複数のパッケージを持つ所有者は、作業を引き続きサポートする可能性が高くなります。 [ 所有者 ] の横にある [ 所有者 に連絡] を選択して、パッケージ開発者に直接連絡します。
ライセンス情報の取得
一部の NuGet クライアントと NuGet フィードでは、ライセンス情報を表示できない場合があります。 このような場合に下位互換性を維持するために、ライセンス URL はライセンス情報を取得する方法についてこのドキュメントを参照します。
パッケージのライセンス URL を選択すると、このページに移動します。これは、パッケージにライセンス ファイルが含まれていることを意味し、次のことを意味します。
- ライセンス情報を解釈してクライアントに表示する方法がわからないフィードに接続されている場合、または
- フィードが提供するライセンス情報を解釈して読み取る方法がわからないクライアントを使用している場合、または
- これらの両方のシナリオの組み合わせ。
パッケージ内のライセンス ファイル内の情報を読み取ります。
- パッケージを手動でダウンロードし、その内容をフォルダーに解凍します。
- フォルダーのルートにある .nuspec ファイルを開きます。
-
<license>など、<license type="file">license\license.txt</license>タグを調べます。 この例のタグは、ライセンス ファイルの名前が license.txt であり、 license というサブフォルダー内にあることを示しています。 - 指定した場所に移動し、指定したファイルを開きます。
.nuspec でのライセンスの設定と同等の MSBuild の詳細については、「ライセンス式またはライセンス ファイルのパッキング」を参照してください。