繁体   English   中英

如何动态定义属性并将它们传递给msbuild中的另一个目标?

[英]How can I define properties dynamically and pass them to another target in msbuild?

我试图以Ant方式重用任务:

   <Target Name="Release">
        <Message Text="Env: $(Env)"/>
   </Target>
   <Target Name="ReleaseIntegration">
    <CreateProperty Value="Development">
      <Output TaskParameter="Value" PropertyName="Env" />
    </CreateProperty>
    <Message Text="Env: $(Env)"/>
    <CallTarget Targets="Release"/>
  </Target>

我得到:

Env: Development
Env: 

有关如何将此属性转换为Release目标的任何想法?

动态项和属性存在错误:

问题与在目标执行实际完成之前无法访问目标中创建的项和属性有关

(更多信息在这里 )。

解决方法很简单:使用一个单独的目标来创建属性。

<Target Name="Release">
  <Message Text="Env: $(Env)"/>
</Target>

<Target Name="CreateProperty">
  <CreateProperty Value="Development">
    <Output TaskParameter="Value" PropertyName="Env" />
  </CreateProperty>      
</Target>

<Target Name="ReleaseIntegration" DependsOnTargets="CreateProperty">
  <Message Text="Env: $(Env)"/>
  <CallTarget Targets="Release"/>
</Target>

你会得到:

Env: Development
Env: Development

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM