如何让一个构建目标中定义的值保持在其他targert中?如果PropertyGroup不是我在此使用的写入MsBuild实体,那么是什么? RELEASEDIR被印在“包”目标确定,但在“DoPackage”空将属性组的值从一个MsBuild任务传递到另一个
<Target Name="Package">
<PropertyGroup>
<ReleasesDir>c:\tmp</ReleasesDirBase>
</PropertyGroup>
<Message Text="$(ReleaseDir)"/>
<CallTarget Targets="DoPackage" Condition="!Exists('$(ReleaseDir)')"/>
</Target>
<!-- Do the acutal packaging -->
<Target Name="DoPackage">
<Message Text="Creating package in '$(ReleaseDir)'"/>
<Error Condition="'$(ReleaseDir)' == ''" Text="No ReleaseDir defined"/>
<MakeDir Directories="$(ReleaseDir)"/>
...
</Target>
我想只有在ReleaseDir存在的情况下才运行DoPackage(我在CallTarget中使用Condition来实现此目的)。我可以使用DependsOnTarget来实现吗? – ripper234 2009-09-03 15:02:31
现在我已经阅读了您发布的链接,解决方案很简单 - 我编写了一个名为“DefineProperties”的单独任务,完成后属性被...定义。谢谢。 – ripper234 2009-09-03 15:15:20
是的,这是解决方案,我已经更新了示例。 – 2009-09-03 15:19:56