msbuild-server について
msbuild-serverは、.NETのコマンドラインビルドを繰り返す開発者向けのスキルです。MSBuild Serverによる評価結果のキャッシュを有効にし、連続ビルドで効果を確認する手順と、調査時のサーバー停止方法を示します。
主な機能
- 01MSBuild Serverの有効化
- 02シェルごとの環境変数設定
- 03連続ビルド時間の比較
- 04問題調査時のサーバー停止
活用シーン
- 01増分コマンドラインビルドの反復を高速化
- 02CIでの連続ビルド
- 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 回目のビルド(コールド):
dotnet build-- サーバーが起動しますが、キャッシュの効果はありません - 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 で終了してください |
コメント
Markdown 対応