知りませんでした…
いつの間にかプロパティ関数という物が追加されています。
プロパティ関数
基本的なデータ型(数値や文字列、日付) や、型変換(System.Convert)、パス(System.IO.Path)、正規表現(System.Text.RegularExpressions.Regex) 等の static メソッド/プロパティがサポートされているようです。
また、環境情報(System.Environment)、ディレクトリ/ファイル(System.IO.Directory/File) の一部の static メソッド/プロパティもサポートされています。
例えばシステム日付を取得しようとすると、
以前ならシステム日付を取得するタスクを呼び出し、その値をプロパティに設定する必要がありました。
しかし、MSBuild 4 からはプロパティに直接設定する事が出来ます。
以前なら
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTarget="DisplayToday" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- MSBuildCommunityTasks の Time タスクを利用するための設定 --> <UsingTask AssemblyFile="MSBuild.Community.Tasks.dll" TaskName="Time" /> <Target Name="DisplayToday"> <Time Format="yyyy/MM/dd HH:mm:ss"> <Output TaskParameter="FormattedTime" PropertyName="Today" /> </Time> <Message Text="$(Today)" /> </Target> </Project>MSBuild 4 からは
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTarget="DisplayToday" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Today>$([System.DateTime]::Now.ToString("yyyy/MM/dd HH:mm:ss"))</Today> </PropertyGroup> <Target Name="DisplayToday"> <Message Text="$(Today)" /> </Target> </Project>
便利になってきていますね!