使用 TeamCity 作为 NuGet 供稿源
如果您希望将您的 NuGet 包发布给有限的受众,例如,内部使用,您可以使用 TeamCity 作为 NuGet 源。 您可以为 TeamCity 项目配置多个 NuGet 供稿源。
内置的 TeamCity NuGet 订阅支持 API v1 / v2 / v3。
启用 NuGet 订阅源
要开始使用 TeamCity 作为 NuGet 服务器,您需要在项目级别添加一个 NuGet 源 - 在 Project Settings| NuGet Feed中。 一个项目可以配置多个 NuGet 供稿。
点击 Add new NuGet 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 项目的源,按如下参数操作:
where:
authSchema
可能是guestAuth
/httpAuth
apiVersion
是v1
/v2
/v3
,例如:teamcity.nuget.feed.httpAuth._Root.default.v2
在将 TeamCity 升级到 2018.2 或更高版本时,引用全局 NuGet 源的已弃用参数将自动转换为引用默认 NuGet 源的参数:
已弃用的参考资料 | 当前参考 |
---|---|
|
|
|
|
|
|
索引 NuGet 包
索引作为工件发布的包
默认情况下,TeamCity 不会将构建发布的 .nupkg
工件添加到项目的 NuGet 供稿中。 您可以选择以下选项中的一个:
要索引仅由选定的构建配置发布的包,需要在这些构建配置中添加 NuGet 包索引器 构建功能。
要索引项目中发布为构建工件的所有
.nupkg
文件,需要在 项目设置 中的 NuGet 供稿 部分启用 自动 NuGet 包索引。使用 NuGet Pack 构建步骤,并勾选 将创建的包发布到构建工件 复选框。
代理在发布构建工件时对.nupkg
文件进行索引。
使用 NuGet push 命令
在构建过程中,要将 .nupkg
文件发布到 TeamCity NuGet 源,您可以将 NuGet 源 URL 指定为包源,将 %teamcity.nuget.feed.api.key%
值指定为源密钥,具体步骤如下:
请注意,只有在构建内部才能推送软件包。 尝试将外部包推送到 TeamCity feed 中都将失败。
符号包
将 NuGet 符号包 发布到内部 TeamCity feed 可能会在使用外部源服务器时引发问题。 参见我们公共跟踪器中的 相应问题。
使用 TeamCity NuGet 订阅源
您可以在您的开发机器上添加 TeamCity NuGet 源作为包源。 例如,要在开发过程中使用包,使用 nuget sources
命令或者在您的 IDE 中使用 NuGet 包管理。
您可以使用 TeamCity NuGet feeds 来通过 NuGet Installer 和 NuGet Publish 构建运行程序,或者配合 MSBuild 恢复
目标的 .NET 运行器,在您的构建中还原包。 过时的 MSBuild 和 Visual Studio (sln) 运行器也得到支持。
TeamCity 使用自有的 credential provider 自动验证对私有 TeamCity NuGet feeds 的请求。
在混合身份验证环境中工作时,可能需要将 Internet Explorer 设置为信任 TeamCity 服务器。