mcpField
M
msbuild-server

msbuild-server

github.com/dotnet開発5.8k1.5k 回インストール1 日前に更新
リポジトリ

msbuild-server について

msbuild-serverは、.NETのコマンドラインビルドを繰り返す開発者向けのスキルです。MSBuild Serverによる評価結果のキャッシュを有効にし、連続ビルドで効果を確認する手順と、調査時のサーバー停止方法を示します。

主な機能

  1. 01MSBuild Serverの有効化
  2. 02シェルごとの環境変数設定
  3. 03連続ビルド時間の比較
  4. 04問題調査時のサーバー停止

活用シーン

  1. 01増分コマンドラインビルドの反復を高速化
  2. 02CIでの連続ビルド
  3. 03サーバー有効化後のビルド問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dotnet/skills --skill msbuild-server

インストール後、Claude Code で/msbuild-serverを入力して読み込まれたか確認します。

詳細

CLI キャッシュ用 MSBuild Server

MSBuild Server を使うと、CLI ビルド間で評価結果をキャッシュできます。長時間実行される MSBuild プロセスによって Visual Studio が得ているパフォーマンス上の利点を再現します。

使用する場面

  • CLI(dotnet build)での小規模な増分ビルドが、予想より遅い
  • 同じプロジェクトで、CLI ビルドより VS ビルドのほうが速いと開発者が感じている
  • CI エージェントが同じリポジトリを連続して何度もビルドする

使用しない場面

  • IDE でのビルド(Visual Studio はすでに長時間実行される MSBuild プロセスを使用しています)
  • 初回起動時のオーバーヘッドを許容できる単発のビルド
  • ビルドの正確性に問題があると思われる場合(問題を切り分けるため、サーバーを無効にしてください)

入力

入力必須説明
シェルのコンテキストいいえ環境変数を設定するシェル(bash、PowerShell、または Windows の永続設定)

ワークフロー

ステップ 1:CLI のコンテキストを確認する

開発者が Visual Studio や別の IDE ではなく、コマンドライン(dotnet build)からビルドしていることを確認します。MSBuild Server は IDE 内では効果がありません。

ステップ 2:環境変数を設定する
# Bash / CI
export MSBUILDUSESERVER=1

# PowerShell
$env:MSBUILDUSESERVER = "1"

# Windows (persistent)
setx MSBUILDUSESERVER 1
ステップ 3:改善を検証する

同じプロジェクトを連続して 2 回ビルドし、所要時間を比較します。

  1. 1 回目のビルド(コールド):dotnet build -- サーバーが起動しますが、キャッシュの効果はありません
  2. 2 回目のビルド(ウォーム):dotnet build -- 明らかに高速になるはずです

プロジェクト数が多いリポジトリや、複雑な Directory.Build.props の読み込みチェーンがあるリポジトリで、最も顕著な改善が見られます。

検証

  • シェルで MSBUILDUSESERVER=1 が設定されている
  • 連続して実行した 2 回目のビルドが、1 回目より速い
  • dotnet build-server shutdown の実行後に再ビルドすると、サーバーが正常に再起動することを確認できる

よくある落とし穴

落とし穴解決策
Visual Studio での改善を期待するVS はすでに長時間実行される MSBuild ノードを使用しているため、サーバーによる効果はありません
有効化後にビルドの正確性に問題が生じるdotnet build-server shutdown を実行してリセットします。問題が続く場合は、サーバーを無効にしてください
サーバープロセスが予想外のメモリを使用するサーバーはバックグラウンドで動作し続けます。使用していないときは dotnet build-server shutdown で終了してください

コメント