CallTarget ディレクティブで使用できるように、msbuild でプロパティを作成するにはどうすればよいですか?
基本的に、プロパティがパラメーターとして機能するターゲット「サブルーチン」を呼び出そうとしています。
プロパティを作成しようとするおもちゃのcsprojファイルを作成してから、それをエコーするターゲットを呼び出してみました。ヌルをエコーします。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Test">
<CreateProperty Value="AAA">
<Output TaskParameter="Value" PropertyName="Foo" />
</CreateProperty>
<CallTarget Targets="Test2" />
</Target>
<Target Name="Test2">
<Message Text="Target Test2: Foo=$(Foo)" />
</Target>
</Project>
実行中のmsbuild TestProj.csproj /t:Test
出力:
Test:
Target Test: Foo=AAA
Test2:
Target Test2: Foo=
問題は、私が msbuild を命令的な方法で考えていることだと思います (これは明らかに一般的な間違いです)。そのため、msbuild の動作に関する非常に根本的な誤解のように見えるものを誰かが修正できることを願っています。