【MSBuild】メタデータと変換
MSBuildで最も理解しづらいと思われる(私だけ?(^^;;)
リスト項目とメタデータ&その利用方法についてまとめます。
■ メタデータとは?
メタデータとは「データを説明するデータ」だそうです。
メタデータとは何ぞやと悩んでもなかなか理解しづらいので、
MSBuildでのメタデータの利用方法とセットで覚えましょう。
■ 変換
MSBuildでのメタデータの利用方法が、変換の機能です。
これは、リスト項目の出力をメタデータを利用して変換することを指します。
変換の修飾子
@(リスト項目名->'変換式')
例.
1. リスト項目の定義
まずはリスト項目ごとにメタデータを定義します。
今回は複数のファイルコピーを別々の場所へ1度にコピーする記述です。
<ItemGroup> <DeploymentSourceFiles Include="C:\SourceFiles1\**\*.*" > <DestinationFolder>E:\DestinationFolder1</DestinationFolder> </DeploymentSourceFiles> <DeploymentSourceFiles Include="D:\SourceFiles2\**\*.*" > <DestinationFolder>E:\DestinationFolder2</DestinationFolder> </DeploymentSourceFiles> </ItemGroup>
2. 変換の利用
変換をファイルコピータスクで利用する例です。
変換式に出てくる%(DestinationFolder)がメタデータになります。
<Copy SourceFiles="@(DeploymentSourceFiles)" DestinationFiles="@(DeploymentSourceFiles->'%(DestinationFolder)\%(RecursiveDir)%(filename)%(extension)')" > </Copy>
これでリスト項目とメタデータを利用することで、
ファイルコピータスクを何回も記述することなく、
1度にコピーを完了できます。
■ 既知のメタデータ
リスト項目はファイルのパスを利用することが多いと思います。
当然、ファイルに関するメタデータが多いです。
既知のメタデータをいくつか挙げます。
%(FullPath)
リスト項目のフルパス
%(FileName)
リスト項目のファイル名(拡張子は除く)
%(Extension)
リスト項目のファイル拡張子
%(RecursiveDir)
リスト項目の再帰的なフォルダ名
詳細は、MSDNを参照してください。
http://msdn2.microsoft.com/ja-jp/library/ms164313(VS.80).aspx
MSBuildの基本操作はNAgileドキュメントにまとめたので、
後はこのメタデータと変換を使いこなせれば、
MSBuildのマスターとなれると思います。
MSBuildについてはひとまずこれで完了。