Visual Studio には、NuGet パッケージ マネージャーの動作を構成するためのオプション ページがいくつか用意されています。 NuGet の構成設定は、 NuGet.Config ファイルに格納されます。
NuGet オプションへのアクセス
NuGet パッケージ マネージャー のオプションにアクセスするには、複数の方法があります。
- メイン メニューから、[ ツール] > [オプション] に移動し、左側のウィンドウで [NuGet パッケージ マネージャー ] を展開します。
- [ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャーの設定] メニュー コマンドの下にある [NuGet] メニューから。
- クイック検索: Visual Studio 検索 を使用して、"NuGet" または NuGet 関連の設定名を検索して、その [オプション] ページにすばやく移動します。
- パッケージ マネージャー UI から: パッケージ マネージャー UI ツール バーの設定 (歯車) アイコンを押します。
- パッケージ マネージャー コンソールから: [パッケージ マネージャー コンソール] ツール バーの設定 (歯車) アイコンをクリックします。
全般
[全般] オプション ページには、NuGet のパッケージ管理動作を制御する設定が含まれています。
パッケージの復元
ビルド操作中のパッケージの自動復元の設定:
- NuGet に不足しているパッケージのダウンロードを許可する: パッケージの復元と [NuGet パッケージの復元] コマンドを有効にすることを選択します。
- Visual Studio でのビルド中に不足しているパッケージを自動的にチェックする: Visual Studio からビルドを実行するときに、不足しているパッケージを自動的に復元することを選択します。
パッケージの復元動作の詳細については、「パッケージの復元」を参照してください。
バインド リダイレクト
- バインド リダイレクトの適用をスキップする: 有効にすると、NuGet は、パッケージのインストールまたは更新中に、app.config または web.config ファイルのバインド リダイレクトを自動的に追加または更新しません
Package Management
既定のパッケージ管理形式: NuGet 形式 PackageReference (ほとんどのプロジェクトに推奨) と packages.config (古いプロジェクトのレガシ形式) のいずれかを選択します。 詳細については、「 既定のパッケージ管理形式の選択」を参照してください。
- PackageReference: パッケージ参照をプロジェクト ファイルに直接格納します。 これは、より優れた依存関係解決をサポートする最新の形式であり、SDK スタイルのプロジェクトに必要です
- packages.config: プロジェクト ファイルとは別にパッケージ情報を格納するレガシ XML ファイル形式
最初のパッケージのインストール時に形式の選択を求めるメッセージが表示されます。有効にすると、パッケージがないプロジェクトにパッケージを初めてインストールするときに PackageReference と packages.config を選択するように求められます。
NuGet ローカル リソースのクリア
[ Clear NuGet Local Resources]\(NuGet ローカル リソース のクリア\) コマンド ボタンを使用すると、次のような NuGet のローカル キャッシュをクリアできます。
- http-cache: ダウンロードされたパッケージのメタデータとパッケージ
- global-packages: インストールされているパッケージ フォルダー
- temp: 一時ファイル
- plugins-cache: プラグイン操作の結果
NuGet のキャッシュとフォルダーの詳細については、「 グローバル パッケージ、キャッシュ、および一時フォルダーの管理」を参照してください。
構成ファイル
[構成ファイル] オプション ページには、現在のソリューションに適用される NuGet.Config ファイルが表示され、Visual Studio で直接開いて編集できます。
ファイルを編集するには、ファイル パスを選択し、[開く] ボタンを押します。 ファイルは Visual Studio の新しいタブで開き、直接編集できます。
構成ファイルは、優先度が最も高い順に一覧表示されます。 NuGet では、複数の構成ファイルの設定がマージされる階層的な構成システムを使用します。 詳細については、「 一般的な NuGet 構成」を参照してください。
パッケージ ソース
[パッケージ ソース] オプション ページでは、NuGet がパッケージをダウンロードするソースを管理できます。
パッケージ ソースの管理
NuGet.Config ファイルに従って、構成されているすべてのパッケージ ソースを一覧表示します。
- 名前: ソースの表示名
- ソース: パッケージ ソースの URL またはファイル パス
- [有効] チェックボックス: ソースを削除せずに有効または無効にします。
- 安全でない接続を許可する: 安全でない HTTP 接続の許可を有効または無効にする
変更するには、テーブルの下にある [追加]、[編集]、[削除] ボタンを使用します 。 チェック ボックスは、テーブル内で直接切り替えることができます。 [追加/編集] ダイアログで [保存] を押すと、関連する NuGet.Config ファイルで変更が更新されます。
マシン全体のパッケージ ソース
マシン レベルで定義されているパッケージ ソースは、以下の専用セクションに表示されます。 これらは通常、Visual Studio ワークロードによってプロビジョニングされ、[有効] 列のチェック ボックスを使用してのみ有効または無効にすることができます。
安全でない接続を許可する
セキュリティ上の理由から、NuGet では既定で HTTPS ソースの使用が強制されます。 HTTP ソースを使用する必要がある場合は、明示的に許可する必要があります。 HTTP ソースを使用すると、[パッケージ ソース] テーブルの最初の列に、その行のパッケージ ソースに関する警告またはエラーに関する情報を含むアイコンが表示されます。
⚠HTTP パッケージ ソースが使用され、[安全でない接続を許可する] が有効になっている場合は、左端の状態列に警告が表示されます。
HTTP ソースは安全ではありません。 代わりに HTTPS を使用することを検討してください。 'AllowInsecureConnections' が有効になっており、HTTP アクセスが許可されています。
❌ HTTP ソースが使用され、[安全でない接続を許可する] が無効になっている場合、左端の状態列にエラーが表示され、NuGet の復元は失敗します。
NuGet には HTTPS ソースが必要です。 HTTP ソースを使用するには、NuGet.Config ファイルで明示的に 'allowInsecureConnections' を true に設定する必要があります。
HTTP ソースのアクセス許可の構成の詳細については、 https://aka.ms/nuget-https-everywhereを参照してください。
パッケージ ソース マッピング
パッケージ ソース マッピングを使用すると、特定のパッケージに使用するパッケージ ソースを制御できるため、サプライ チェーンのセキュリティが向上します。
変更するには、テーブルの下にある [追加]、[編集]、[削除] ボタンを使用します 。
パッケージ ソース マッピングの管理
NuGet.Config ファイルに従って、構成されているすべてのパッケージ ソース マッピングを一覧表示します。
-
パッケージ パターン: 現在マップされているパッケージ パターン (
Microsoft.*やContoso.Contractsなど) - ソース: パッケージ パターンにマップされた 1 つ以上のパッケージ ソース。 パッケージ ソースを表示するには、有効にする必要があります。
変更するには、テーブルの下にある [追加]、[編集]、[削除] ボタンを使用します 。 [追加/編集] ダイアログで [保存] を押すと、関連する NuGet.Config ファイルで変更が更新されます。
詳細については、「 パッケージ ソース マッピング」を参照してください。
ソース マッピングが無効です
既存のソース マッピングに一覧表示されているパッケージ ソースが NuGet.Config ファイルで有効になっていない場合は、左端の列にエラーが表示されます。
マッピング内のすべてのソース値が、使用可能で有効なパッケージ ソースを参照していることを確認します。 そうしないと、マッピングが期待どおりに機能しない可能性があります。