
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、.fsproj、Directory.Build.props、Directory.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# サイドカーの基盤が必要です。