簡単に言うと、さまざまな NuGet ツールは、通常、プロジェクト ファイルまたは packages.config内のパッケージへの参照を作成し、パッケージの復元を実行して、パッケージを効果的にインストールします。 例外は nuget install。パッケージは packages フォルダーにのみ展開され、他のファイルは変更されません。
一般的なプロセスは次のとおりです。
(
nuget.exeを除くすべてのツール)パッケージ識別子とバージョンをプロジェクト ファイルまたはpackages.configに記録します。インストール ツールが Visual Studio または dotnet CLI の場合、ツールは最初にパッケージのインストールを試みます。 互換性がない場合、パッケージはプロジェクト ファイルまたは
packages.configに追加されません。パッケージを取得します。
グローバル パッケージとキャッシュ フォルダーの管理に関するページで説明されているように、パッケージが (正確な識別子とバージョン番号で) グローバル パッケージ フォルダーに既にインストールされているかどうかを確認します。
パッケージが グローバル パッケージ フォルダーにない場合は、 構成ファイルに一覧表示されているソースからパッケージの取得を試みます。 この時点で、パッケージ ソース マッピングの構成が適用されます。 オンライン ソースの場合は、
-NoHttpCacheがnuget.exeコマンドで指定されているか、--no-http-cacheでdotnet restoreが指定されていない限り、まず HTTP キャッシュからパッケージを取得するように試みます。 (Visual Studio とdotnet add packageは常にキャッシュを使用します)。パッケージがキャッシュから使用されている場合は、出力に "CACHE" が表示されます。 キャッシュの有効期限は 30 分です。パッケージがフローティング バージョンを使用して指定されている場合、または最小バージョンがない場合、NuGet はすべてのソースに連絡して最適な一致を確認します。 例:
1.*、(, 2.0.0]。パッケージが HTTP キャッシュにない場合は、構成に一覧表示されているソースからパッケージのダウンロードを試みます。 パッケージがダウンロードされると、出力に "GET" と "OK" が表示されます。 NuGet は、http トラフィックを通常の詳細度でログに記録します。
ソースからパッケージを正常に取得できない場合、この時点で NU1103 などのエラーでインストールが失敗します。
nuget.exeコマンドからのエラーは、チェックされた最後のソースのみを示しますが、パッケージはどのソースからも使用できなかったことを意味します。
パッケージを取得するときに、NuGet 構成のソースの順序が適用される場合があります。
- NuGet は、HTTP ソースを確認する前に、ソースのローカル フォルダーとネットワーク共有を確認します。
グローバル パッケージとキャッシュ フォルダーの管理の説明に従って、パッケージとその他の情報のコピーをhttp キャッシュ フォルダーに保存します。
ダウンロードした場合は、ユーザーごとのグローバル パッケージ フォルダーに パッケージを インストールします。 NuGet は、パッケージ識別子ごとにサブフォルダーを作成し、インストールされているパッケージの各バージョンのサブフォルダーを作成します。
NuGet は、必要に応じてパッケージの依存関係をインストールします。 このプロセスでは、「 依存関係の解決」の説明に従って、プロセス内のパッケージのバージョンが更新される可能性があります。
他のプロジェクト ファイルとフォルダーを更新します。
(Visual Studio のみ)パッケージの readme ファイル (使用可能な場合) を Visual Studio ウィンドウに表示します。
NuGet パッケージを使用して生産性の高いコーディングをお楽しみください。