TeamCity On-Premises 2024.03 Help

NuGet

集成能力

TeamCity" 集成了 NuGet 包管理器,当在代理上安装了 "NuGet" 时,提供以下功能:

  • 私有 NuGet feeds 基于构建发布的工件。

  • 一套 NuGet 运行器可在 Windows OS 上的构建中使用,以及在 Linux 和 macOS 上,当代理上安装了 Mono 时也可以使用。

    • NuGet Installer 构建运行程序,用于安装和更新 NuGet 包。

    • NuGet Pack 构建运行程序,用于构建 NuGet 包。

    • NuGet Publish 构建运行程序,可以将包发布到您所选择的源。

  • NuGet 依赖触发器,它允许在 NuGet 供稿更新时触发构建。

支持的操作系统
NuGet 构建运行程序默认在运行 Windows OS 的构建代理上得到支持。 当在代理上安装了 Mono 时,支持 Linux 和 macOS(仅支持在 Mono 4.4.2+ 上的 NuGet 3.3+)。

典型使用场景

在 TeamCity 代理中安装 NuGet

NuGet 触发器和 NuGet 相关的构建运行程序需要在服务器上配置 NuGet 命令行二进制文件。 一旦配置好,它们会自动分发给代理。 可以安装多个版本,并且您可以将自己选择的版本设置为默认版本。

要在 TeamCity 上安装 NuGet.exe

  1. 前往 Administration | Tools 标签页。

  2. 点击 安装工具并选择 NuGet.exe

  3. 选择您是否想从公共源下载(默认)NuGet,或者上传您自己包含 NuGet.exe 的 NuGet 包。

    • 如果选中了 Download 单选按钮,请指定要在所有构建代理上安装的 NuGet 版本。

    • 如果选中了 Upload 单选按钮,您需要指定您自己的 NuGet 包。

  4. 指定是否要使用相关复选框将此 NuGet 版本设置为默认。

  5. 点击 Add 安装所选的 NuGet 版本。

在代理上清理 NuGet 程序包缓存

NuGet 使用几个本地缓存来避免下载已经安装的包,以提供离线支持。 如果代理运行的空间不足,TeamCity 将尝试在代理上清理 NuGet 包缓存。

TeamCity NuGet 清理工具会清理以下 Windows 目录中的缓存:

  • %%NUGET_PACKAGES%% 环境变量 (必须是绝对路径)

  • %%LOCALAPPDATA%%\NuGet\Cache

  • %%LOCALAPPDATA%%\NuGet\v3-cache

  • %%user.home%\.nuget\packages

自 TeamCity 2019.2.3 起,除了现有的 NuGet 清理器外,还引入了新的自动包清理器。 如果 .NET SDK 已经在构建代理上安装,TeamCity 将使用原生的 .NET SDK 命令进行清理。 新的清理工具在支持 .NET SDK 的所有平台上均可工作,并在多个层面上操作。 它首先清理临时缓存,然后才开始清理 .nupkg 文件和 HTTP 请求,如果需要的话。

私有 NuGet Feeds 中的身份验证

您可以在 内置 NuGet 源NuGet 源凭据构建功能中指定的源中使用身份验证。 凭证提供商将自动对这些源的请求进行身份验证。

API 支持:

  • NuGet Installer / NuGet Publish 运行程序

    • v3:在 Windows 系统上需要 NuGet 4.8+ ,在 Mono 上需要 NuGet 4.9+

    • v1/v2:NuGet 2.0+ 是最低要求,推荐使用 NuGet 3.5+

  • .NET

    • v3:需要 .NET CLI 2.1.500

    • v1/v2:不支持

代理配置

NuGet 命令行客户端支持通过 NuGet.config 文件参数或环境变量配置代理服务器。 参阅 NuGet 文档 以获取更多详情。

最后修改日期: 16日 7月 2024年