Mais conteúdo relacionado
Semelhante a Ms build 触ってみよう (20)
Mais de Oda Shinsuke (20)
Ms build 触ってみよう
- 5. MSBuild 知ってますか?
Microsoft Build Engine
XML ベースで記述するビルドツール
Visual Studio で使う.*proj ファイルなら
知ってる? (.csproj/.vbproj 等)
それが MSBuild プロジェクトファイル!
※Visual Studio 2005 以降
- 6. インストールした憶えないけど?
昔は .NET Framework に同梱
現在は Visual Studio に同梱
単体でもインストール可能に
Micorsoft Build Tools 2013
http://www.microsoft.com/ja-jp/download/details.aspx?id=40760
- 7. Visual Studio 2005~と仲良し!
プロジェクトファイル = MSBuild プロ
ジェクトファイル
Visual Studio でビルドすると、MSBuild
を呼び出してビルドしている
MSBuild プロジェクトファイルは Visual
Studio で使うメタデータも持っている
ビルドでは使わないが Visual Studio の機
能で利用するデータ
- 8. Visual Studio で MSBuild 書く
.proj ファイルは XML エディターで
メニュー -> XML -> スキーマ -> 追加
Visual Studio インストールフォルダ
XmlSchemas1041MSBuild 以下
の .xsd を選択
- 19. Target (属性 - 依存関係/前後処理)
DependsOnTargets
Target 実行前に指定された Target を実行
<Target Name=“Package” DependsOnTargets=“Clean;Build” >
BeforeTargets/AfterTargets
Target の前後に指定された Target を実行
<Target Name=“bar” BeforeTargets=“foo”
AfterTargets=“baz”>
同じ Target は1ビルド中に1回だけしか
実行されない
- 20. Target (エラー処理)
Task の ContinueOnError が
ErrorAndStop / false の場合は、
OnError で指定した Target を実行
TaskOne 、TaskTwo どちらでエラーが出ても OtherTarget が実行される。
エラーが出ない場合は、OtherTarget は実行されない
<Target Name="ThisTarget">
<TaskOne ContinueOnError="ErrorAndStop“ />"
<TaskTwo />
<OnError ExecuteTargets="OtherTarget" />
</Target>
- 21. Property
同じ名前の Property は後で指定した物が
優先される
.targets で指定されている場合も同様
Import の位置が大事!
<PropertyGroup>
<Param>Default</Param>
</PropertyGroup>
<Target Name="Hello">
<Message Text="Hello $(Param) さん" />
</Target>
<PropertyGroup>
<Param>Default2</Param>
</PropertyGroup>
後ろで指定されている Default2 が出力される
- 22. Property
プロパティ関数
基本的なデータ型/型変換/ファイルパス/正
規表現 等の static なメソッド/プロパティ
の呼び出しサポート
<PropertyGroup>
<Today>
$([System.DateTime]::Now.ToString("yyyy/MM/dd HH:mm:ss"))
</Today>
</PropertyGroup>
<Target Name="HelloWorld">
<Message Text="$(Today) Hello MSBuild World!" />
</Target>
- 30. まとめ
MSBuild は XML ベースで設定するビルド
ツール
Visual Studio での設定も込み
知らなくても特に問題無い
けど、知ってると役に立つことも