将NuGet包推送到TeamCity NuGet服务器

时间:2016-03-09 14:28:07

标签: nuget teamcity-9.0 nuget-server

我已经启用了TeamCity的NuGet Server,我想推送通用软件包(即来自公共资源,如NuGet.org),因为构建服务器无法在我们公司外部看到,因此在构建服务器上恢复软件包来自NuGet.org是不可能的。

我无法看到如何将这些软件包推送到我们的TeamCity服务器上。我已经看到了各种答案,建议在构建中使用程序包构建或其他一些发布方法,但这不适合我的用例。

如果我尝试从命令行发布它抱怨它无法找到API密钥(我从哪里获取?)并且它不允许我输入我的凭据(我假设我的团队城市登录它会告诉我"无法在非交互模式下提示输入。" (我没有设置该模式,我无法看到如何关闭它。)

那么,我如何将我在别处获得的adhoc包推送/发布到团队城市?

1 个答案:

答案 0 :(得分:3)

我相信TeamCity提供的nuget功能是在TeamCity的内置工件功能之上添加的API。

有很多后果:

  • 执行构建配置以生成任何标记为工件的.nupkg文件时,它们将在Teamcity nuget供稿中可用。
  • 与所有其他工件一样,在TeamCity中发布的nupkgs受Teamcity的一般工件保留规则的约束。
  • nuget包的访问规则与对TeamCity项目的访问权限相同。

但据我所知,Teamcity Nuget API中没有实现将包推送到它的实现。存储原始包或生成包的一般做法是使用独立的nuget服务器或服务,如普通文件共享,基于Nuget.Core的服务器,proget或myget.org。

更新: 如果您最终得到了许多自己的软件包,我听说有人报告说,当客户解析软件包时,Teamcity变得非常慢。

更新2: 在过去的几年里,我采用了将构建工件包分成两类库包和部署包的概念。一个单独的软件包存储库可以用于这两种类型,但是存储库(例如Octopus deploy中可用的存储库)应该仅用于部署软件包。