今更ながらMSBuildを使ったバッチを作った
■MSBuildを使ったバッチを作ろうと思った背景
現在、C#を使った「デバッグ設定ツール」で「オプション追加」ボタン押下すると
初音ミク冒険記の既存のVC++ソースを読み込んで
入力したオプション設定に従い、修正したソースを自動生成するようにしている。
この時、生成されるものの中には、
ほとんどのVC++ソースでincludeしているヘッダファイルがある。
本来だと、そのヘッダをincludeしているソースだけ
ビルドすれば良いんだけど、
ごくたまにビルドしたら期待通りに動かず
リビルドしたら期待通りに動くという現象が起きる。
このため、リビルドするようにしてるんだけど
このリビルドが1分20秒くらいかかるので、その間に別の作業がしたい。
具体的には、「オプション追加」ボタン押下は
C#側のソースも修正する必要があるのでそれをやりたい。
そのため、「デバッグ設定ツール」で「オプション追加」ボタン押下の時は
大抵「デバッグ設定ツール」のC#ソリューションを開いた状態で行っている。
だから、途中でVC++側のビルドのため、ソリューションファイルを開く
といったことはしたくない。
ということで、「オプション追加」ボタン押下時に
MSBuildでVC++側をリビルドするバッチ処理を動かして
すぐにC#側の作業をしたいと思ったわけだ。
■リビルドバッチ
バッチファイルの中身はこんな感じ
Set PATH=%PATH%;"%ProgramFiles(x86)%\MSBuild\12.0\Bin"
F:
cd "F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki"
MSBuild.exe HatsuneMikuBoukenki.sln /p:Configuration=Release /t:rebuild
pause
要するに
・MSBuild.exeへのパスを通す
・リビルド対象ソリューションのフォルダへ移動
・MSBuild.exeでソリューションのリビルド
という流れだ。
初音ミク冒険記は、常にReleaseモードでリビルドしたいから
MSBuildの引数を指定しているが
単純にDebugモードのビルドならソリューションファイルの指定だけで良い。
/pはパラメータ指定
/tはターゲット指定
パラメータやターゲットの詳細は、
後述の参考情報のリンクに載っています。
(たらい回しですみません)
■作業した感想
かげさんのマシンのVisualStudioは
2008、2010、2012、2013と4バージョン入っているため
CドライブにMSBuild.exeがあちこちにあって
どこにパスを通すのが正しいのか分からず時間がかかった・・・
MSDNでMSBuildの知りたい情報が見つけにくかったり
パスを通さないとCL.exeとかでエラーになったり
通すパスを間違ってv120の設定がないとか出たりして
想像以上に苦戦した・・・![]()
■参考情報
MSDNの情報って、
VisualStudioのバージョンアップとかが原因と思うけど
リンク先が変わっていたりして
後から確認し用とした時に見れなかったりするので
MSDN以外のサイトで分かりやすくまとまっていたサイトや
便利そうと思ったサイトも載せておく。
•MSBuildの基本
http://smdn.jp/programming/netfx/msbuild/
•MSBuild オプション基礎文法最速マスター
http://cointoss.hatenablog.com/entry/2012/09/14/220425
•チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成
https://msdn.microsoft.com/ja-jp/library/dd576348.aspx
•VISUAL STUDIO 2013 のビルドツールセットを拡充する プロフェッショナル編
http://lab.planetleaf.com/windows/development-win/expand-build-tool-set-visual-studio-2013-pro.html
| 【固定リンク】 | 【コメント (0)】 | 【トラックバック (0)】
このエントリーへのリンク
トラックバック
この記事へのトラックバックの一覧です: 今更ながらMSBuildを使ったバッチを作った:


コメント
このブログの新着コメントをRSSリーダに登録する為のxml