我希望能够编写以下内容,但无法在MSBuild中编写:

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

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

有没有更好的方法可以做到这一点?

最佳答案

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

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

关于msbuild - MSBuild元属性-如何在属性名称由其他属性组成的情况下检索属性值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5351906/

10-13 07:51
查看更多