Microsoft、「Visual Studio」でNuGetの依存関係の問題解決を支援するツールを公開実験的な拡張機能「NuGetSolver」

Microsoftは、「Visual Studio」でNuGetパッケージの依存関係の競合に対処するための実験的な拡張機能「NuGetSolver」を公開した。

» 2024年01月25日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2024年1月16日(米国時間)、「Visual Studio 2022」でNuGetパッケージの依存関係の競合に対処するための実験的な拡張機能「NuGetSolver」を公開した。

 NuGetは、広く使われている.NET用パッケージマネジャー。NuGetSolverは、プロジェクトにおけるNuGetパッケージの依存関係の競合を自動的に解決することを目的としており、以下のような最も一般的なNuGetエラーや警告に効率的に対処する。

  • NU1107:パッケージ間の依存関係の制約を解決できない
  • NU1202:依存関係パッケージには、プロジェクトと互換性のあるアセットが含まれていない
  • NU1605:依存関係パッケージで、最終的に解決された復元よりも高いバージョンのパッケージに対するバージョン制約が指定された
  • NU1701:パッケージからアセットを選択するためにPackageTargetFallback / AssetTargetFallbackが使用された

NuGetSolverを使用するには

 NuGetSolverは、Visual Studio Marketplaceからダウンロード、インストールできる。Visual Studioのソリューションエクスプローラーで右クリックし、「Resolve Dependency Conflicts」(依存関係の競合を解決)を選択して起動する。

NuGetSolverの起動(提供:Microsoft) NuGetSolverの起動(提供:Microsoft)

 NuGetSolverは依存関係を調査し、競合を解決する提案を生成できるかどうかを計算する。提案を生成すると、現在の状態と提案を表示する。

現在の状態と提案を表示(提供:Microsoft) 現在の状態と提案を表示(提供:Microsoft)

 提案が満足のいくものなら、「Apply fix」をクリックして適用し、ソリューションを再構築して、依存関係の競合が解決されたかどうかを確認する。

 なお、Microsoftは、リポジトリのソース管理を有効にすることを推奨している。そうすれば、NuGetSolverによる変更を、必要に応じて簡単に元に戻せるためだ。

 NuGetSolverは、ソリューションに依存関係の競合がない場合でも実行可能であり、変更を最小限に抑えながら依存関係をアップグレードする。NuGet Package Managerを使ってパッケージを1つずつアップグレードするのは時間がかかり、他の依存関係の制約で失敗することもあるため、NuGetSolverはより効率的な代替手段になると、Microsoftは説明している。

NuGetSolverの使用における注意点

 NuGetSolverは実験的な拡張機能であり、さまざまな制約がある。その一部を以下に示す。

  • 現在サポートされているのはnuget.orgフィードのみであり、ソリューションのnuget.configファイルのソースが以下のようになっていることを確認する必要がある
nuget.configファイルの内容(提供:Microsoft) nuget.configファイルの内容(提供:Microsoft)
  • マルチフィードとローカルパッケージフィードはサポートされていない
  • NuGetSolverはコンパイル時の依存関係の競合を解決する可能性があるが、実行時エラーが発生する可能性は残る
  • NuGetSolverは現在、提案に含まれるバージョンに既知の脆弱(ぜいじゃく)性があるかどうかを検証していない。NuGetの監査機能がこの問題への対処に役立つ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。