首页 > 解决方案 > 需要将 VS SLN 文件的显式列表提供给 nuget 还原任务

问题描述

Azure Devops Pipeline Task NuGetRestore@1 不接受用于迭代的解决方案文件列表

在构建 Azure Pipeline 时,我发现我的一些解决方案文件、构建代码必须在构建解决方案的其余部分之前推送到 Nuget 源。我编写了一些 Powershell 来识别这一点,并将文件列表作为变量反馈回来。在随后的任务中,我尝试使用解决方案文件列表作为 NuGetRestore@1 任务的输入,但失败了。

variables:
  SLNFILELIST: 'a/a.sln b/b.sln'

- task: NuGetRestore@1
  displayName: restore slnfilelist
  inputs:
    solution: "$(SLNFILELIST)"

理想情况下,上面的 NuGetRestore 任务将遍历变量中的解决方案文件 a 和 b。但是我得到了这个(编辑的)输出。

Active code page: 65001
##[error]Error: Not found files: D:\a\1\s\a\a.sln D:\a\1\s\b\b.sln
##[error]Packages failed to restore
##[section]Finishing: restore slnfilelist

在某种程度上我知道这个任务中有一个迭代机制,因为如果解决方案设置为“***.sln”的值,任务将去当前工作目录中查找所有解决方案文件,然后遍历它们,所以任务有能力,问题是那是怎么直接喂给任务的?

标签: azureazure-devopspipelinenuget-package-restore

解决方案


SMH,在我发布这篇文章 10 分钟后,我在这个 github 问题中找到了答案。

相反,使用分号而不是空格分隔符,它可以工作。:(

启用在 NuGet 还原任务中选择多个输入文件 #8369


推荐阅读