gpt4 book ai didi

msbuild - 输出 MSBuild 变量时遇到问题

转载 作者:行者123 更新时间:2023-12-01 08:22:44 24 4
gpt4 key购买 nike

我试图将变量从一个目标输出到启动它的父目标中。例如,

目标 1 只是调用文件 2 中的任务,并且应该能够使用其中的变量集。但是,我似乎无法让它工作(可能是语法错误?)。目标 1 如下所示:

<Target Name="RetrieveParameter">
<MSBuild Projects="$(MSBuildProjectFile)" Targets="ObtainOutput" />
<Message Text="Output = $(OutputVar)" />
</Target>

目标 2 是它读入文本文件的值并将其设置为属性并将变量“OutputVar”设置为匹配的位置。这应该返回给 parent 。
<Target Name="ObtainOutput" Outputs="$(OutputVar)">
<ReadLinesFromFile File="output.txt">
<Output TaskParameter="Lines"
PropertyName="OutputVar" />
</ReadLinesFromFile>
</Target>

我对 MSBuild 任务很陌生,所以它很可能是显而易见的。我想要做的就是在一个任务中设置一个变量,然后在调用它的父任务中使用它。

最佳答案

Julien has given you the right answer ,但没有解释为什么它是正确的。

由于您是 MSBuild 任务的新手,我将解释为什么 Julien 的答案是正确的。

MSBuild 中的所有任务都有参数 - 您将知道它们作为您放置在任务上的属性。这些参数中的任何一个都可以通过放置 Output 读回。其中的元素。 Output element 具有三个可以使用的属性:

  • TaskParameter - 这是您要获取的任务的属性/参数的名称
  • ItemName - 这是将该参数值放入
  • 的项目组
  • PropertyName - 这是将该参数值放入
  • 的属性名称。

    在您的原始脚本中,您正在从另一个调用一个。第二个脚本将在不同的上下文中执行,因此它设置的任何属性或项目组仅存在于该上下文中。因此,当第二个脚本完成时,除非您指定了一些 Output元素来捕获它们将被丢弃的值。

    请注意,您可以放置​​多个 Output任务下的元素以捕获多个参数或仅将相同的值设置为多个属性/项目组。

    关于msbuild - 输出 MSBuild 变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968077/

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