Azure Devops 私有构建代理在 nuget 还原任务中失败

Posted

技术标签:

【中文标题】Azure Devops 私有构建代理在 nuget 还原任务中失败【英文标题】:Azure Devops private build agent failing at nuget restore task 【发布时间】:2020-09-14 14:46:51 【问题描述】:

Azure DevOps 私有构建代理正在尝试下载旧的 dotnet 版本包作为 Nuget 还原任务 的一部分,这些包不再在项目中使用,并且在特定管道中失败只要。对于相同的 nuget 还原任务,相同的构建代理在任何其他管道中都没有问题。我的问题是,特定管道是否可以单独缓存 nuget 还原并因此而失败..?

【问题讨论】:

您能否分享管道中哪个特定任务失败以及错误消息? 已经提到:Nuget 恢复任务 并且错误消息说:##[error]The nuget command failed with exit code(1) and error(Errors in packages.config项目无法找到包'Edge.js'的版本'9.3.0'。我们不再使用这个版本的edge.js,但不知何故它正在尝试下载旧包,而这个包版本在nuget repo中不存在,所以它失败了. 这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以 Accept it as an Answer ,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档这个帖子,谢谢。 【参考方案1】:

Azure Devops 私有构建代理在 nuget 还原任务中失败

根据您评论中的错误信息:

packages.config 项目中的错误无法找到版本“9.3.0”的 包'Edge.js'。我们不再使用这个版本的 edge.js 但不知何故,它试图下载旧包和这个包 nuget repo 中不存在版本

nuget 正在恢复一个你不再使用的 nuget 包,并且这个包版本在 nuget repo 中不存在,所以它失败了。

要解决此问题,我们需要从项目中删除该包。如果您有packages.config,请删除其中的以下项目:

<package id="Edge.js" version="9.3.0" targetFramework="net461" />

如果您的项目是.net core,您需要打开您的项目文件 .csproj 文件并删除其中的以下项目:

<PackageReference Include="Edge.js" Version="9.3.0" />

如果您已经这样做了,那么您需要检查与当前管道关联的 repo 和分支,以确认 关联 repo 分支上的源代码已更新

如果以上答案没有解决您的问题,请分享有关您的构建定义和项目中的包信息的更多信息。

希望这会有所帮助。

【讨论】:

其实你的回答帮助我找到了解决方案。我在 ADO 管道中签出源代码之前激活了源代码和输出目录的清理,这解决了这个问题,所以我猜以前它是在过时的代码上运行任务。

以上是关于Azure Devops 私有构建代理在 nuget 还原任务中失败的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure Devops 上运行构建时找不到资产文件 project.assets.json

如何在 Azure DevOps 2020 中手动更新构建代理?

Azure Devops:即使在设置 NPM Authenticate 之后,也无法使用 NPM 私有注册表构建映像

托管代理失败的 Azure DevOps 构建管道

text 创建构建代理 - devops azure(TFS在线)

使用 C# 中的 azure devops API 在发布和构建定义中更新代理池