TeamCity On-Premises 2026.2 Help

使用 TeamCity 作为 NuGet 供稿源

如果您希望将您的 NuGet 包发布给有限的受众,例如,内部使用,您可以使用 TeamCity 作为 NuGet 源。 您可以为 TeamCity 项目配置多个 NuGet 供稿源。

内置的 TeamCity NuGet 订阅支持 API v1 / v2 / v3。

启用 NuGet 订阅源

要开始将 TeamCity 用作 NuGet 服务器,您需要在项目级别添加一个 NuGet feed — 在 项目设置 | NuGet Feed。 一个项目可以配置多个 NuGet 供稿。

点击 添加新的 NuGet Feed 以创建一个 feed。 如有需要,可以为当前项目及其子项目启用 自动包索引 功能。

以下订阅端点可供使用:

  • http://<teamcityUrl>/<authSchema>/app/nuget/feed/<projectName>/<feedName>/v1

  • http://<teamcityUrl>/<authSchema>/app/nuget/feed/<projectName>/<feedName>/v2

  • http://<teamcityUrl>/<authSchema>/app/nuget/feed/<projectName>/<feedName>/v3/index.json

如果您已启用了 访客用户 ,您将会看到 Basic HTTP 认证和访客认证在 NuGet feed 端点之间的切换。

  • 基本 HTTP 身份验证 (带有 httpAuth 前缀):要访问包,用户必须具有“ 查看项目 ”权限。

  • 访客身份验证 (带有 guestAuth 前缀):如果启用了访客用户登录,所有有权访问 TeamCity 服务器的用户都可以看到包。

要引用 TeamCity 项目的源,按如下参数操作:

`teamcity.nuget.feed.<authSchema>.<projectName>.<feedName>.<apiVersion>

where:

  • authSchema 可能是 guestAuth/httpAuth

  • apiVersion 是 v1/v2/v3 ,例如: teamcity.nuget.feed.httpAuth._Root.default.v2

在将 TeamCity 升级到 2018.2 或更高版本时,引用全局 NuGet 源的已弃用参数将自动转换为引用默认 NuGet 源的参数:

已弃用的参考资料

当前参考

teamcity.nuget.feed.server

teamcity.nuget.feed.guestAuth._Root.default.v2

teamcity.nuget.feed.auth.server

teamcity.nuget.feed.httpAuth._Root.default.v2

system.teamcity.nuget.feed.auth.serverRootUrlBased.server

teamcity.nuget.feed.httpAuth._Root.default.v2

索引 NuGet 包

索引作为工件发布的包

默认情况下,TeamCity 不会将构建发布的 .nupkg 工件添加到项目的 NuGet 供稿中。 您可以选择以下选项中的一个:

  • 要索引仅由选定的构建配置发布的包,需要在这些构建配置中添加 NuGet 包索引器 构建功能。

  • 要索引作为构建工件发布在项目中的所有 .nupkg 文件,请在 NuGet Feed 部分的 项目设置 中启用 自动包索引。

  • 使用 NuGet Pack 构建步骤,并勾选 将创建的包发布到构建工件 复选框。
    代理在发布构建工件时对 .nupkg 文件进行索引。

使用 NuGet push 命令

在构建过程中,要将 .nupkg 文件发布到 TeamCity NuGet 源,您可以将 NuGet 源 URL 指定为包源,将 %teamcity.nuget.feed.api.key% 值指定为源密钥,具体步骤如下:

请注意,只有在构建内部才能推送软件包。 尝试将外部包推送到 TeamCity feed 中都将失败。

符号包

将 NuGet 符号包 发布到内部 TeamCity feed 可能会在使用外部源服务器时引发问题。 参见我们公共跟踪器中的 相应问题。

使用 TeamCity NuGet 订阅源

您可以在您的开发机器上添加 TeamCity NuGet 源作为包源。 例如,要在开发过程中使用软件包,请使用 dotnet nuget add source 命令或在 IDE 中使用 NuGet 软件包管理功能:

dotnet nuget add source <FEED_URL> --name TeamCity --username <USERNAME> --password <PASSWORD>

如果使用 SSO,请生成一个 访问令牌 ,并将其用作 --password 实参值。

您可以使用 TeamCity NuGet feeds 来通过 NuGet Installer 和 NuGet Publish 构建运行程序,或者配合 MSBuild 恢复 目标的 .NET 运行器,在您的构建中还原包。 过时的 MSBuild 和 Visual Studio (sln) 运行器也得到支持。
TeamCity 使用自有的 credential provider 自动验证对私有 TeamCity NuGet feeds 的请求。

在混合身份验证环境中工作时,可能需要将 Internet Explorer 设置为信任 TeamCity 服务器。

当前限制

  • 在单个构建步骤中混用 .NET SDK 与 .NET Framework 工具时,身份验证可能会失败。 例如,如果在通过 MSBuild.exe 构建项目时,将 .NET CLI 命令作为 Exec 任务运行,就可能会出现这种情况。 查看 TW-93344 以获取详细信息。

2026年 9月 11日