MSBuild元属性 - 如何检索属性名称是其他属性组合的属性值?

时间:2011-03-18 12:21:20

标签: msbuild properties

我希望能够写下面的内容,但不能在msbuild中编写:

<Target Name="SetDynamicPropertyValues"> 
   <PropertyGroup>
      <TargetHost>$($(Target-Environment)-Host)</TargetHost>
   </PropertyGroup>
</Target>

使用property::get-value function可以在NAnt中轻松完成。之前问题的答案显示approach using the Condition attribute

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

MSBuild处理属性名称一次。要做这种功能,必须多次调用预处理。我认为使用基于条件的方法会更好。

<PropertyGroup>
   <TargetHost Condition="'$(Target-Environment)'=='Env1'">Host_1</TargetHost>
   <TargetHost Condition="'$(Target-Environment)'=='Env2'">Host_2</TargetHost>
   <TargetHost Condition="'$(TargetHost)'==''">DefaultHost</TargetHost>
</PropertyGroup>