在 Azure Pipelines 中还原 NuGet 包

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

使用 NuGet 包还原,可以安装项目的所有依赖项,而无需将它们存储在源代码管理中。 这允许更清洁的开发环境和更小的存储库大小。 可以使用 NuGet 还原任务、NuGet CLI 或 .NET Core CLI 还原 NuGet 包。 本文介绍如何使用 YAML 和经典 Azure Pipelines 还原 NuGet 包。

先决条件

使用 NuGet 还原还原包

  1. 导航到经典管道定义,然后选择“ 编辑”。

  2. 选择 + 以添加新任务。 搜索 NuGet,然后选择“ 添加 ”以将任务添加到管道。

  3. 为任务命名,然后从命令中选择“还原”。

  4. 选择 “源” (“) ”,然后从下拉菜单中选择源。 如果要使用自己的配置文件,请在 我的NuGet.config中选择源 ,然后输入NuGet.config文件和服务连接的路径(如果要在组织外部使用源进行身份验证)。

  5. 如果要包含来自 NuGet.org 的包,请选中“ 使用来自 NuGet.org 的包 ”复选框。

  6. 完成后,选择 “保存 & 队列 ”。

    显示如何配置 NuGet 还原任务的屏幕截图。

注意

经典 NuGet 还原使用 NuGetCommand@2 任务。 默认情况下,此版本使用 NuGet 4.1.0。 如果要使用不同的 NuGet 版本,请使用 NuGet 工具安装程序任务

使用 NuGet CLI 还原包

将你的 nuget.config 位置放在与你的 .csproj.sln文件相同的文件夹中。 配置文件应类似于以下示例:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <!-- remove inherited connection strings -->
    <clear />
    <!-- add an Azure Artifacts feed -->
    <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/microsoftLearnModule/_packaging/FabrikamFiber/nuget/v3/index.json" />
    <!-- Get packages from NuGet.org -->
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

若要还原 NuGet 包,请在项目目录中运行以下命令:

nuget.exe restore

使用 .NET Core CLI 任务还原包

- task: DotNetCoreCLI@2
  displayName: dotnet restore
  inputs:
    command: restore                      ## The dotnet command to run. Options: build, push, pack, restore, run, test, and custom.
    projects: '**/*.csproj'               ## Path to your csproj file
    feedsToUse: 'select'                  ## Options: select, config
    vstsFeed: '<projectName>/<feedName>'  ## Required when feedsToUse == Select
    includeNuGetOrg: true                 ## Use packages from NuGet.org

从其他组织中的源还原包

若要从其他 Azure DevOps 组织中的源还原 NuGet 包,必须使用个人访问令牌进行身份验证。

  1. 导航到 Azure DevOps 组织,然后选择 “用户设置>个人访问令牌”。

    显示如何创建个人访问令牌的屏幕截图。

  2. 使用 打包 (读取) 范围创建个人访问令牌,并将 PAT 复制到剪贴板。

  1. 导航到管道定义并选择 NuGet 还原 任务。 请确保使用的是版本 2 或更高版本。

    显示 NuGet 还原任务版本的屏幕截图。

  2. 选择 “源和身份验证 ”部分,然后选择 “我的NuGet.config”选项中的源

  3. 输入NuGet.config文件的路径。

  4. 选择 “新建 ”以 添加此组织/集合外部源的凭据

    显示如何配置 NuGet 还原任务的屏幕截图。

  5. 选择“外部Azure DevOps Server”,然后输入源 URL (确保它与之前创建的NuGet.config) 、服务连接名称和个人访问令牌匹配。 完成后,选择“ 保存 ”。

    显示如何添加 NuGet 服务连接的屏幕截图。

  6. 完成后,选择 “保存 & 队列 ”。

常见问题解答

我的管道无法还原 NuGet 包?

由于多种原因,NuGet 还原任务可能会失败。 最常见的情况是,添加需要管道正在使用的 NuGet 版本不支持 的目标框架 的新项目。 本地开发环境中通常不会发生此故障,因为 Visual Studio 负责相应地更新解决方案。 确保将 NuGet 任务升级到最新版本。

如何实现使用最新版本的 NuGet?

对于新管道, NuGet 工具安装程序 将自动添加到任何使用 NuGet 任务的管道。 我们会定期更新 NuGet 默认版本,同时在托管生成代理上安装 Visual Studio 更新。

对于现有管道,请将 NuGet 工具安装程序 添加到管道,并为所有后续任务选择 NuGet 版本。 请查看 dist.nuget 以查看所有可用版本。

显示 NuGet 工具安装程序任务的屏幕截图。