使用 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>/v1http://<teamcityUrl>/<authSchema>/app/nuget/feed/<projectName>/<feedName>/v2http://<teamcityUrl>/<authSchema>/app/nuget/feed/<projectName>/<feedName>/v3/index.json
如果您已启用了 访客用户 ,您将会看到 Basic HTTP 认证和访客认证在 NuGet feed 端点之间的切换。
基本 HTTP 身份验证 (带有 httpAuth 前缀):要访问包,用户必须具有“ 查看项目 ”权限。
访客身份验证 (带有 guestAuth 前缀):如果启用了访客用户登录,所有有权访问 TeamCity 服务器的用户都可以看到包。
要引用 TeamCity 项目的源,按如下参数操作:
where:
authSchema可能是guestAuth/httpAuthapiVersion是v1/v2/v3,例如:teamcity.nuget.feed.httpAuth._Root.default.v2
在将 TeamCity 升级到 2018.2 或更高版本时,引用全局 NuGet 源的已弃用参数将自动转换为引用默认 NuGet 源的参数:
已弃用的参考资料 | 当前参考 |
|---|---|
|
|
|
|
|
|
索引 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 软件包管理功能:
如果使用 SSO,请生成一个 访问令牌 ,并将其用作 --password 实参值。
您可以使用 TeamCity NuGet feeds 来通过 NuGet Installer 和 NuGet Publish 构建运行程序,或者配合 MSBuild 恢复 目标的 .NET 运行器,在您的构建中还原包。 过时的 MSBuild 和 Visual Studio (sln) 运行器也得到支持。
TeamCity 使用自有的 credential provider 自动验证对私有 TeamCity NuGet feeds 的请求。
在混合身份验证环境中工作时,可能需要将 Internet Explorer 设置为信任 TeamCity 服务器。