NuGet パッケージブラウザー — Browse タブ

NuGet パッケージマネージャー

VS Code 拡張機能には、NuGet ブラウザーとパッケージ保守コマンドが含まれています。Rust ホストは、対象の検出、NuGet API へのクエリ、復元の進行状況、未使用パッケージの分析、統合処理のオーケストレーションを担います。プロジェクトファイルの変更には .NET サイドカーの MSBuild DOM を使用するため、既存の XML 構造と書式は維持されます。

ブラウザーを開く

プロジェクトを右クリックして Browse NuGet Packages を選ぶか、SharpLsp: Browse NuGet Packages を実行します。ワークスペースに複数の対象がある場合は、編集するプロジェクトまたは中央パッケージファイルを選択します。

ブラウザーでは次の操作ができます。

  • nuget.org の検索
  • 設定 sharplsp.nuget.includePrerelease が有効な場合にプレリリース版を結果へ含める
  • インストール済みの直接参照を表示する
  • パッケージのメタデータと利用可能なバージョンを確認する
  • パッケージのインストール、選択バージョンの変更、削除

プロジェクトと中央パッケージ管理

SharpLsp は .csproj.fsprojDirectory.Build.propsDirectory.Packages.props を編集対象として検出します。ManagePackageVersionsCentrally が有効な場合は、中央の PackageVersion を更新し、プロジェクトの PackageReference にはバージョンを設定しません。

インストール、更新、削除、統合の操作では、複数の MSBuild ファイルを変更する場合があります。レスポンスには変更されたすべてのファイルが報告されます。

復元とリアクティブ性

パッケージを編集すると、ホストはバックグラウンドで dotnet restore を開始し、進行状況をブラウザーへ通知します。ソリューションエクスプローラーのプロジェクト依存関係ストアは、プロジェクトファイルと中央パッケージファイルを監視します。そのため、外部で編集しても拡張機能を再起動せずにパッケージ/参照ノードが更新されます。

未使用パッケージ

プロジェクトまたはソリューションで Remove Unused Packages を実行します。SharpLsp は、直接のパッケージ参照とコンパイラー側でのアセンブリ使用状況を組み合わせ、未使用と分類できる参照だけを提案します。削除前に確認一覧を確認できます。

この解析は保守的です。コンパイル用アセンブリを提供しないパッケージは、型の使用箇所が見つからないという理由だけでは、自動的に削除可能とみなされません。

パッケージの統合

ソリューションで Consolidate Packages を実行すると、複数のプロジェクトで重複するパッケージ参照を検出できます。コマンドは最初にドライランを行い、変更案を表示します。その後、共有する PackageReference 項目をソリューションルートの Directory.Build.props へ引き上げ、影響を受けるプロジェクトを復元できます。中央パッケージ管理が有効な場合、バージョンは引き続き Directory.Packages.props から取得されるため、引き上げられた参照にはバージョンを記述しません。

エラー時の動作

ネットワーク障害、無効な対象、MSBuild 編集の失敗、復元の失敗は、ファイルを暗黙に書き換えることなく報告されます。現在、共有 MSBuild DOM エディターは C# サイドカーにあるため、対象が F# プロジェクトでも、パッケージ編集には C# サイドカーの基盤が必要です。