Amazon 初売り

« ニコ生のコテハンの付け方 | トップページ | Jenkinsのjobが正常終了に見えてDirectoryNotEmptyException を出してた・・・ »

2016.02.21

今更ながらMSBuildを使ったバッチを作った

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

■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)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

トラックバック

この記事へのトラックバックの一覧です: 今更ながらMSBuildを使ったバッチを作った:

コメント

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




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。