Azure Pipeline Nuget restore task "Error: Not found nugetConfigPath"



我们在Azure DevOps Pipeline中向NuGet restore task添加了一个nuget.config文件。我们使用了";浏览";特性来设置它的路径,但当我们运行管道时,我们会得到错误"Error: Not found nugetConfigPath"。这似乎表明我们选择的路径不正确。我们已经重新检查了.config文件中的包源路径,并确认它们是正确的。

到目前为止,我们还无法找到任何关于这个问题的文件。

我们正在使用TFVC。

这是Azure DevOps在我们使用";浏览";功能:$/PCS Development/Forms/PCS.Forms.Integration/nuget.config

我们将路径切换到不同目录中的不同解决方案,NuGet恢复任务就可以工作了。然后我们将其切换回我们需要使用相同路径引用$/PCS Development/Forms/PCS.Forms.Integration/nuget.config构建的解决方案,它就工作了。这个问题似乎与DevOps不总是识别我们需要构建的解决方案的路径有关。

在找到Nuget恢复任务的解决方案后,我们在Build任务中收到了相同的路径错误。在生成任务中,直接(绝对(引用D:\a\11\s\Forms\PCS.Forms.Integration\PCS.Forms.Integration.sln,而不是$/PCS Development/Forms/PCS.Forms.Integration/PCS.Forms.Integration。sln,它不起作用(但现在在Nuget还原任务中起作用(。

Microsoft已在打开一个问题https://github.com/microsoft/azure-pipelines-tasks/issues/17033

我们是在创建路径引用的方式上做错了什么,还是这是一个错误?

我将首先向管道添加一个调试任务,该任务将列出代理目录的所有内容,内容如下:https://stackoverflow.com/a/63129192/11034408

然后从列表中查看nuget.config的实际路径。然后使用此处列出的预定义变量构建路径:https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml。

所以类似于:

$(System.DefaultWorkingDirectory)/PCS Development/Forms/PCS.Forms.Integration/nuget.config

不建议使用直接路径(显示在管道日志中(,因为文件夹结构可能会更改。对于自托管代理来说尤其如此,在自托管代理中,生成定义映射到代理工作文件夹下的某些路径,但可能会根据池中运行的代理数量、代理清理作业或使代理再次映射生成定义的内容而更改。

nuget任务在使用经典管道(我假设您正在使用(时表现有点糟糕,因为它确实给出了一个相对路径。不过,不确定你从哪里得到的"$"可能也会造成严重破坏。

这也可能有助于理解azure管道代理的目录结构:https://github.com/microsoft/azure-pipelines-agent/blob/master/docs/jobdirectories.md

最新更新