MSBuildとNAntの違い

MSBuildの解説資料をNAgile.comで公開しましたが、
資料に書いてない点を何点か、このブログで補足したいと思います。

MSBuildNAntの違い□
下記はNAntを使っていた人の視点でまとめてます。

MSBuildのプロパティは文字列のみ扱える
 これは解説資料にも注意点として書きましたが、
 Condition属性で条件式を記述する際に
 プロパティの値は文字列であることを念頭に置いておく必要があります。

MSBuildは関数が使えない
 NAntでは、C#などで定義した独自関数を呼び出すことができますが
 MSBuildでは関数の概念が無いため、カスタムタスクを作成し、
 そのタスクの出力をプロパティに設定する必要があります

MSBuildではifタスクが無い
 これもタスクを記述する際の注意事項ですね。
 タスクの条件分岐が記述できないので、条件によってタスクを切り替えたい場合
 Condition属性によって実行するターゲットを切り替える必要があります。

思いつくものだけをまとめてみました。
他にも標準で提供されるタスクの違いもありますが、
どっちみち拡張タスクライブラリを使えば良いので、気にならないでしょうね。

MSBuildを利用する上ではItemGroupを使いこなすのが一番重要です。
ItemGroupのメタデータと変換についてはMSBuildで1番わかりづらいところだと思うので、
それは次回まとめようと思います。