gpt4 book ai didi

msbuild - 将属性组值从一个 MsBuild 任务传递到另一个

转载 作者:行者123 更新时间:2023-12-04 00:33:52 24 4
gpt4 key购买 nike

如何在另一个目标中保持一个构建目标中定义的值?如果 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>

最佳答案

有一个well known issue具有属性和 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>

关于msbuild - 将属性组值从一个 MsBuild 任务传递到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com