rip*_*234 12 msbuild msbuild-propertygroup
如何在一个构建目标中定义的值在其他目标中保持活动状态?如果PropertyGroup不是我在这里使用的写MsBuild实体,那是什么?ReleaseDir在"Package"目标中打印正常,但在"DoPackage"中为空
<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>
Run Code Online (Sandbox Code Playgroud)
Jul*_*rau 21
属性和CallTarget任务存在一个众所周知的问题.您应该使用DependsOnTargets.
<Target Name="Package">
<PropertyGroup>
<ReleasesDir>c:\tmp</ReleasesDir>
</PropertyGroup>
<Message Text="$(ReleasesDir)"/>
</Target>
<Target Name="PrePackage" DependsOnTargets="Package">
<CallTarget Targets="DoPackage" Condition="!Exists('$(ReleasesDir)')"/>
</Target>
<!-- Do the actual packaging -->
<Target Name="DoPackage" DependsOnTargets="Package">
<Message Text="Creating package in '$(ReleasesDir)'"/>
<Error Condition="'$(ReleasesDir)' == ''" Text="No ReleaseDir defined"/>
<MakeDir Directories="$(ReleasesDir)"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8513 次 |
| 最近记录: |