Visual Studio 2022で「Package source mapping is off」の修正方法
問題説明
Visual Studio 2022(バージョン17.8以降)でNuGetパッケージマネージャーを操作する際、**「Package source mapping is off」**という警告メッセージが表示される現象が発生します。このメッセージは以下のような状況で確認できます:
- ソリューション内のNuGetパッケージを管理しようとした時
- 「参照」タブや「インストール済み」タブでパッケージをクリックした時
- 新しいパッケージのインストール操作時
この警告はパッケージソースマッピングが無効化されていることを意味し、セキュリティ上のリスクが生じる可能性があります。
なぜ発生するのか?
Visual Studio 17.8で導入された新しいセキュリティ機能により:
- パッケージソースマッピングがデフォルトで監視されるようになった
- マッピングルールが未設定の場合、この警告が表示される
- 悪意あるパッケージや不正なソースからのインストールを防ぐための仕様変更
修正手順
方法1: NuGet設定UIからの修正(推奨)
- 警告メッセージ上の 「Configure」リンクをクリック
- 開いた「Package Source Mapping」設定ウィンドウで:
- Package pattern に
*
を入力 - Source に
https://api.nuget.org/v3/index.json
を選択
- Package pattern に
- Add ボタンをクリックしてルールを追加

- OKをクリックして設定を保存
方法2: nuget.configファイルで直接編集
- ソリューションルートまたはプロジェクトフォルダ内の
nuget.config
を開く <packageSourceMapping>
セクションを追加(存在しない場合)
xml
<warning> **注意**: `*`パターンはすべてのパッケージを公式ソースに紐付けます。 プライベートフィードを使用する場合は、専用パターンを追加してください。 </warning> <configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
設定内容の解説
設定項目 | 推奨値 | 役割 |
---|---|---|
Package pattern | * (アスタリスク) | すべてのパッケージ名にマッチ |
Source | https://api.nuget.org/v3/index.json | 公式NuGetパッケージソース |
この設定により:
- すべてのNuGetパッケージが公式リポジトリからの取得が保証される
- 第三者のパッケージソースから意図せぬインストールが防止される
- セキュリティ警告が永久に非表示になる
よくある質問
この警告を無視しても大丈夫ですか?
一時的な開発では動作に影響しませんが、以下のリスクがあります:
- 信頼できないソースからのパッケージインストールが可能になる
- サプライチェーン攻撃の脆弱性が残る
- チーム開発時には設定の不整合が生じる可能性あり
企業内プライベートフィードを使う場合
複数ソースを利用する場合は、パッケージごとに明示的にソースを指定:
xml
<packageSourceMapping>
<packageSource key="nuget.org">
<package pattern="Microsoft.*" />
<package pattern="System.*" />
</packageSource>
<packageSource key="MyPrivateFeed">
<package pattern="MyCompany.*" />
</packageSource>
</packageSourceMapping>
設定後はVisual Studioを再起動して変更を反映させてください。ソースマッピングが正常に有効化されれば、NuGetマネージャー上の警告メッセージは表示されなくなります。