MSBuild ItemGroupの利用

CCNETで利用するビルドファイルをMSBuildで書き換えています。
MSBuildを利用する上で重要なテクニックに、ItemGroupの利用があります。
下にNCoverの引数をItemGroupを使って指定している例を示します。

MSBuildファイルの例 -----------------







                                                                                    • -

プロパティと同じような感じで、@(アイテム名)と記述することでItemGroupを使えます。
ちなみにMSBuildでプロパティを利用する場合は、$(プロパティ名) です。

また、ItemGroupを使う際、セパレータ文字も指定できます。
たとえばカンマをセパレータ文字に使用する場合は、@(アイテム名, ',')と記述します。
※デフォルトのセパレータ文字はセミコロン(;)です。

このItemGroupは上記のようなプログラムへの引数や、
複数ファイルをコピーしたり削除したりする際に使えるテクニックです。
またItemGroupを使ったほうが、ビルドファイルがより綺麗に記述できます。
他にも、リストの例外のパターンを指定するExcludeやワイルドカードなども
使えるので、色んな表現が可能です。覚えておいて損はありません。

NAntで上記と同じことをやろうとすると、タスクごとに記述する感じになるので
素直にMSBuildの良い機能だと思いますね。