Nuget还原不适用于Azure Devops中的工件提要

时间:2020-04-23 10:20:08

标签: .net-core azure-devops nuget azure-pipelines

NuGet还原无法从Feed中读取相同组织中的另一个项目404。

在管道中使用nuget restore时,找不到其他项目中的feed。

2 个答案:

答案 0 :(得分:3)

搜索了很长一段时间后,这些是使其始终如一地工作的必要步骤:

设置权限

  • 确保使用方项目已禁用此设置
    • 项目设置(左下方)->管道->设置-> 将作业授权范围限制为当前项目(由另一个answer提供)
  • 确保将使用项目的Build Service添加到feed的权限中

设置构建管道

  • 使用.Net Core CLI Task
  • 理想情况下,您将使用nuget.config file并确保在
  • 中进行检查
  • feedsToUse设置为'config'


azure-pipelines.yml

- task: DotNetCoreCLI@2
      displayName: DotNetCore-Restore
      inputs:
        command: 'restore'
        projects: '$(PathToSolution)'
        feedsToUse: 'config'
        nugetConfigPath: '$(PathToNugetConfig)/nuget.config'
        includeNuGetOrg: true


nuget.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="feed_name" value="feed_url" />
  </packageSources>
</configuration>



不需要将验证任务添加到管道中,因为dotnet命令本身可以完成此任务...但是:

大多数dotnet命令(包括构建,发布和测试)都包含一个 隐式还原步骤。这将无法通过经过验证的供稿, 即使您在较早的步骤中成功运行了dotnet还原, 因为前面的步骤将清除它使用的凭据。
-Source (.NET Core CLI task docs)

答案 1 :(得分:0)

您可以参考this文档来设置Azure Artifacts凭据提供程序以在各种工具中使用。