我希望能够编写以下内容,但无法在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/