即使从命令行进行相同的构建工作,TFS 构建也会失败

问题描述

我有一个 TFS CI 构建每次都失败,尽管如果我转到 TFS 控制台并复制正在执行的确切命令并将其复制/粘贴到同一台机器上的 CMD 提示符并运行它,它运行良好。这怎么可能?我遇到过 TFS 正在调用不同版本的 MSBuild 的情况,但该命令确切地指定了在哪里可以找到 MSBuild,因此不可能。许多错误中的第一个是:“Shared\QCImage\GliffTool.cs(4,7): Error CS0246: The type or namespace name 'PacsForm' Could not be found(您是否缺少 using 指令或程序集引用?)" 如果我​​在 VS 中运行这个构建它工作正常,但真正的问题是 exact 命令在直接运行时工作。到底是怎么回事?

这是本地托管的 TFS 版本 15.117.26714.0。不 - 升级不是一种选择。

enter image description here

解决方法

这怎么可能?

最可能的原因是您使用的是 Microsoft 托管的代理。因此,无论您的 TFS 在哪台机器上运行,管道都在云代理上运行。

点击 this document 了解有关自托管代理和 Microsoft 托管代理的更多详细信息

如果您不介意使用自托管代理来运行管道,您可以通过以下链接进行设置。这样,您的管道就相当于在本地运行,并且不会受到 Microsoft 的管道计费限制。

请注意左侧导航栏上方的版本选择。

如果您想使用 Microsoft 托管的代理运行管道,您遇到的错误是您的应用找不到 PacsForm。它未安装在 Microsoft 托管的代理上。

如果 PacsForm 是 NuGet 包,则需要使用 NuGet restore 任务来恢复它。

如果没有,您需要将其包含在您的存储库中并在您的应用程序中编辑您的引用。请注意,您的应用引用不得包含绝对路径。

,

没关系 - 它刚刚开始工作。昨天没有 - 今天有(?)。不解释。