将NuGet包推送到TeamCity NuGet服务器

3
我已经启用了TeamCity的NuGet服务器,并希望推送常见包(即来自公共源,如NuGet.org),因为构建服务器无法查看我们公司之外的内容,因此无法从NuGet.org还原包到构建服务器。
我无法看到如何将这些包推送到我们的TeamCity服务器。我看到了各种答案,建议使用软件包生成工具或其他一些从构建内部发布的方法,但这不适用于我的用例。
如果我尝试从命令行发布,它会抱怨找不到API密钥(我从哪里获取?),并且它不允许我输入凭据(我假设我的团队城市登录就是它),因为它告诉我“不能在非交互模式下提示输入。”(我没有设置该模式,也看不到如何关闭该模式)。
那么,我该如何将从其他地方获得的特定包推送/发布到TeamCity中?
1个回答

5
我认为TeamCity提供的nuget功能是在TeamCity内置构件功能之上添加的API。
这样会带来一些后果:
  • 当执行生成任何标记为构件的.nupkg文件的构建配置时,它们将在Teamcity nuget feed上可用。
  • 与所有其他构件一样,在TeamCity中发布的nupkgs受到TeamCity的通用构件保留规则的约束。
  • 访问Nuget包的规则与访问TeamCity项目的规则相同。
但据我所知,Teamcity Nuget API中没有实现推送软件包的功能。存储原始或生成的软件包的一般做法是使用独立的nuget服务器或服务,例如普通文件共享、基于Nuget.Core的服务器、proget或myget.org。
更新: 如果您最终拥有自己的许多软件包,我听说人们报告说当客户端解决软件包时,Teamcity变得非常缓慢。
更新2: 在过去的几年中,我采用了将构建构件包分为两类库包和部署包的概念。可以使用单独的包存储库来存储两种类型,但诸如Octopus deploy中提供的存储库应仅用于部署包。

更新3: 微软有一个页面列出了一些NuGet服务器选项


1
我最终使用了文件共享。感谢你的帮助。 - Colin Mackay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接