gpt4 book ai didi

tfs - 在 TFS 构建中首次运行后跳过自定义目标

转载 作者:行者123 更新时间:2023-12-04 14:43:52 25 4
gpt4 key购买 nike

我的构建中有一个自定义目标(一组复制任务等),我需要调用它几次以影响不同位置的更改。但是,这只会在第一次调用时运行,之后 TFS 构建会跳过所述目标。

过程如下:

<!-- Copy some files to another location -->
<CallTarget Targets="CopyFiles"></CallTarget>

...

<!-- Copy the above files to yet another location -->
<CallTarget Targets="CopyFiles"></CallTarget>

在构建日志中,可以看到目标“CopyFiles”在第二次调用时被跳过了:

Target "CopyLicenseManagerFiles" skipped. Previously built successfully.

为什么会这样?有没有办法强制目标(或我编写的任何自定义目标)运行多次?

最佳答案

每个 MSBuild 实例、每个参数集都应调用一次。在某些情况下,Team Build 确实会分离出单独的 MSBuild 实例(例如,如果您提供多个解决方案配置)。但这可能对您没有帮助。

更适用于您的方案,如果您使用不同的参数集调用 MSBuild,MSBuild 将重新运行任务。如果您正在复制两组不同的文件,这听起来像您正在寻找的功能。

<MSBuild Project=".\CommonStuff.targets" Targets="CopyFiles" Properties="Location=1" />
<!-- .... -->
<MSBuild Project=".\CommonStuff.targets" Targets="CopyFiles" Properties="Location=2" />

另一种解决方案是将功能重构为任务而不是目标。虽然仍然存在声明式与过程式的怪癖,但 Tasks 的行为更接近于您认为来自更熟悉的语言的“函数”。

关于tfs - 在 TFS 构建中首次运行后跳过自定义目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413698/

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