1.21 jigowatts

Great Scott!

MSBuildでコマンドラインからビルドする

概要

いつもVisual Studioからビルドしてましたが、コマンドラインMSBuild.exeを使ってビルドしてみます。あっ、今年はde:code行けなかったで(´;ω;`)スンスン

f:id:sh_yoshida:20170527011041p:plain

環境

MSBuild

Visual Studio Community 2017をデフォルトでインストールしたらexeは以下にありました。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe

構文

MSBuild.exe [Switches] [ProjectFile]  

パスを通すか、フルパスでMSBuildを実行。引数にはビルドするソリューションでok。

> MSBuild C:\src\workspace\ClassLibrary1\ClassLibrary1.sln

詳細なオプションは以下。オプションじゃなくてスイッチか。
MSBuild Command-Line Reference

いくつか頻繁に使いそうなスイッチをつけて実行してみるぞぃ。
長くなるのでパスは省略します。

ソリューションをクリーンしてリビルド

/target(/t)スイッチにターゲットを指定します。いつもVisualStudioでやってるやつや。

> MSBuild ClassLibrary1.sln /t:clean;rebuild 

64bit Debugビルド

/property:(/p)スイッチにConfigurationとPlatformを指定します。Releaseやx86を渡したりするんですね。

> MSBuild ClassLibrary1.sln /t:build /p:Configuration=Debug;Platform="x64"

Microsoftのすべての規則」でコード分析

/property:(/p)スイッチにRunCodeAnalysisとCodeAnalysisRuleSetを指定します。ルールセットにファイルのパスを渡すとクソ長くなりますのでよろしくお願いします。

> MSBuild ClassLibrary1.sln /t:build /p:RunCodeAnalysis=true;CodeAnalysisRuleSet="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Static Analysis Tools\Rule Sets\AllRules.ruleset"

ビルドログをファイルに出力

/verbosity:(/v)スイッチにdiagnostic(diag)を指定すると詳細なログがもりもり吐かれます。
/fileLogger(/fl)スイッチはカレントにmsbuild.logという名前でビルドログを出力してくれるやつ。かわいい。

> MSBuild ClassLibrary1.sln /t:build /v:diag /fl


これらを踏まえてスイッチをマシマシで流してみましょう。

メニュー
  • クリーン、リビルド
  • Debug
  • AnyCPU
  • コード分析(Microsoft マネージ推奨規則)
  • ビルドログの情報量(minimal)
  • ビルドログをファイル出力

f:id:sh_yoshida:20170527011041p:plain

うん、ログもちゃんと出ていますね。

f:id:sh_yoshida:20170527001947p:plain

(ふぅ、5月分の更新できた!)
次回はコマンドラインからMSTestでテストを実行する回の予定ですぅ。