Azure devops Microsoft DevOps测试代理”;无法从OSX或Linux发布工件;

Azure devops Microsoft DevOps测试代理”;无法从OSX或Linux发布工件;,azure-devops,Azure Devops,我正在运行一个本地的MicrosoftDevOps服务器以及两台运行测试代理的独立机器,用于夜间自动测试。我最近配置了第三个测试代理,但是在发布作业使用的构建作业期间,在发布工件时遇到了问题 相同的作业在两个现有测试盒上完美运行,但总是在构建完成后和工件发布步骤期间抛出此错误: 2020-09-01T21:32:29.2544245Z###[部分]开始:发布工件: bin_drop 2020-09-01T21:32:29.2548130Z ============================

我正在运行一个本地的MicrosoftDevOps服务器以及两台运行测试代理的独立机器,用于夜间自动测试。我最近配置了第三个测试代理,但是在发布作业使用的构建作业期间,在发布工件时遇到了问题

相同的作业在两个现有测试盒上完美运行,但总是在构建完成后和工件发布步骤期间抛出此错误:

2020-09-01T21:32:29.2544245Z###[部分]开始:发布工件: bin_drop 2020-09-01T21:32:29.2548130Z ======================================================================================================2020-09-01T21:32:29.2548196Z任务:复制和发布生成 工件2020-09-01T21:32:29.2548235Z说明:[已弃用]使用 改为“复制文件”任务和“发布生成工件”任务 2020-09-01T21:32:29.2548273Z版本:1.0.32 2020-09-01T21:32:29.2548311Z作者:微软公司 2020-09-01T21:32:29.2548365Z帮助: 2020-09-01T21:32:29.2548404Z ================================================================================================================2020-09-01T21:32:30.7956739Z***.运行设置 2020-09-01T21:32:30.8306609Z###[错误]无法从发布工件 OSX或Linux到文件共享。您可以将“工件类型”更改为 “服务器”,使用Windows,或使用“复制文件”,“通过SSH复制文件”, 或“FTP上载”任务。2020-09-01T21:32:30.8378696Z ##[部分]完成:发布工件:bin_drop

在试图解决这个问题时,我确实考虑过使用发布构建工件任务,但是它的描述说它会有同样的问题(例如,在Linux上不工作等)。要明确的是,最新的测试盒与另外两个运行Windows10的测试盒相同,它没有运行linux或OSX

在查看Microsoft的测试代理代码(我想我找到了正确的代码)时,看起来他们正在使用Node.js检测代理运行的平台,如果它不等于“win32”,那么他们就会抛出此错误

因此,我导航到代理中的Node.js实例: \代理\externals\node\bin \代理\externals\node10\bin

并运行此代码,并验证它确实从两个Node.js实例返回了“win32”:

const os = require('os'); 
console.log(os.platform()); 
据我所知,第三个测试框上的配置与其他两个Windows 10测试框上的配置相同。这不应该抛出这个错误。有没有人知道为什么测试代理可能会获取除“win32”以外的值,从而认为它没有在windows上运行,并为我抛出此错误

编辑: 我确实尝试在计算机上删除并重新配置代理。在所有文本框上,代理都以交互模式运行,因此可以运行GUI测试


另外,我最近不得不重建另外两个测试框中的一个(在我已经在努力处理框3之后),重建工作进展顺利。完全重新安装所有内容,并且它与以前一样工作正常。

我能够通过从正在工作的测试机器复制代理来解决此问题。似乎最近从DevOps服务器下载的代理本身有一个bug

从工作机器复制代理,并从中剥离所有的工作和配置数据,然后将其安装到新的第三台测试机器上,从而生成一台工作机器


我在与机器3斗争时重建的测试机器是成功的,因为我没有完全重新格式化。只需重新安装操作系统,然后使用其数据驱动器中的安装文件在其上完成所需软件的安装,因此我从不需要从DevOps服务器下载新的代理。

您是否尝试重新配置代理?非常奇怪的是,这个错误发生在Windows代理上。您可以在CMD任务中打印
agent.os
agent.OSArchitecture
,以查看代理的操作系统。@JaneMa MSFT如何在CMD任务中运行这些命令?我尝试将其添加为命令行任务,但得到以下结果:2020-09-02T14:52:21.6378642Z##[command]agent.os 2020-09-02T14:52:21.6967624Z“agent.os”未被识别为内部或外部命令,是的,我尝试过删除,然后在计算机上重新配置代理。错误消息会准确地告诉您问题所在,并提供多种解决方案。你尝过这些吗?无法将项目从OSX或Linux发布到文件共享。您可以将“工件类型”更改为“服务器”,使用Windows,或使用“复制文件”、“通过SSH复制文件”或“FTP上载”任务。@DanielMann,您的评论似乎是在讽刺。你会注意到评论中的项目已经在原来的帖子中提到了。很高兴听到你已经解决了这个问题!您可以,这样有类似问题的人可以更容易地找到解决方案。谢谢。我还得再等几个小时才能让我把它标记为答案。我仍然想知道如何在CMD任务中打印agent.os。脚本是
echo$(agent.os)
echo$(agent.OSArchitecture)