如何在 msbuild 中创建一个属性,以便可以在 CallTarget 指令中使用它?
本质上,我试图调用一个目标“子例程”,其中属性充当参数。
我尝试制作一个尝试创建属性的玩具 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 如何工作的一个非常基本的误解。