msbuild - MSBuild元属性-如何在属性名称由其他属性组成的情况下检索属性值?

标签 msbuild properties

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

相关文章:

c# - 发布 Web 应用程序时 AfterPublish 脚本不运行

msbuild - 在 msbuild (12.0) 命令行属性分配上引用宏

.net - 是否可以在 MSBuild 中计数?

objective-c - 调试 iOS : How do I break on property value change?

msbuild 失败并显示成功的 robocopy 退出代码

msbuild - 如何减少 MSBuild 时间

properties - 如何使用 SoapUI 在我的 JSON 输入请求中使用全局属性名称?

java - spring boot 向环境添加另一个属性文件

properties - 多个 lang.properties 文件的 Java 属性文件编辑器?

java 属性文件对一个属性使用多行