かげさんの111から始まるHistory » パソコン・インターネット, 初音ミク冒険記 » 今更ながらMSBuildを使ったバッチを作った

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

今更ながら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の設定がないとか出たりして
想像以上に苦戦した・・・coldsweats02

■参考情報
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

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

|

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

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

トラックバァ~ック!


★アディダスやニューバランス関連のトラックバックスパムが多すぎて★
★超迷惑なので、トラックバックは承認制としました。★
★このため、トラックバックが記事に表示されるまで
★時間がかかることがあります★

この記事にトラバ~る為のURL:

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

コメント

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




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

メールアドレスは書きたくないって人は、掲示板に書き込むって方法もあります。掲示板はメールアドレスなしでもOKです!

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


絵文字を挿入