Skip to content

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. パッケージソースマッピングがデフォルトで監視されるようになった
  2. マッピングルールが未設定の場合、この警告が表示される
  3. 悪意あるパッケージや不正なソースからのインストールを防ぐための仕様変更
<tip> **重要**: 警告自体は動作をブロックしませんが、パッケージ管理のセキュリティを強化するために対処が推奨されます。 </tip>

修正手順

方法1: NuGet設定UIからの修正(推奨)

  1. 警告メッセージ上の 「Configure」リンクをクリック
  2. 開いた「Package Source Mapping」設定ウィンドウで:
    • Package pattern* を入力
    • Sourcehttps://api.nuget.org/v3/index.json を選択
  3. Add ボタンをクリックしてルールを追加
パッケージソースマッピング設定画面
Package Source Mapping設定画面での操作例
  1. OKをクリックして設定を保存

方法2: nuget.configファイルで直接編集

  1. ソリューションルートまたはプロジェクトフォルダ内のnuget.configを開く
  2. <packageSourceMapping>セクションを追加(存在しない場合)
xml
<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>
<warning> **注意**: `*`パターンはすべてのパッケージを公式ソースに紐付けます。 プライベートフィードを使用する場合は、専用パターンを追加してください。 </warning>

設定内容の解説

設定項目推奨値役割
Package pattern*(アスタリスク)すべてのパッケージ名にマッチ
Sourcehttps://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マネージャー上の警告メッセージは表示されなくなります。