【问题标题】:How to backup downloaded Nuget Packages with TeamCity如何使用 TeamCity 备份下载的 Nuget 包
【发布时间】:2015-06-04 15:20:25
【问题描述】:

我的客户希望保留项目中曾经使用过的每个 Nuget 包的本地副本,这样即使 nuget.org 不可用,也可以构建旧版本的应用程序。这些包不是在项目中创建的,只是使用 Nuget restore 从 nuget.org 下载的。

如果这些包最终位于与运行 TeamCity 的服务器不同的服务器上的文件共享上,那就太好了。

一种简单的方法是在 Nuget 安装程序步骤之后添加一个构建步骤,将每个 .nupkg 文件复制到所需的文件共享中。这是解决这个问题的好方法,还是有更好的方法?

Nuget 包存储在构建代理的什么位置?是否可以使用一些环境变量或类似的东西来引用该文件夹,以便复制脚本不需要具有硬编码路径?

【问题讨论】:

  • 我刚刚意识到可以在与我的 Visual Studio 解决方案相同的文件夹中找到这些包。引用该文件夹没有问题。但是,关于执行此操作的任何更好方法的问题仍然存在。

标签: .net nuget teamcity


【解决方案1】:

所有下载的 NuGet 包都存储在 %LOCALAPPDATA%\NuGet\Cache

如果您想将它们自动上传到文件共享,我建议您使用 BitTorrent Sync 之类的工具。 https://www.getsync.com/

【讨论】:

  • 我宁愿只备份在这个特定的 VS 解决方案中使用的 Nuget 包,而不是在这个 TeamCity 服务器上构建的任何解决方案使用的每个包。
  • 让您的 TeamCity 服务器仅使用本地存储库中的 NuGet 包的好处之一是,即使 nuget.org 出现故障(这种情况已经发生过几次),您仍然可以进行构建。跨度>
  • 但是首先如何将包送到构建服务器?
  • NuGet 自动恢复 packages.config 文件中列出的包。它将从存储库列表中下载这些包。默认为官方 NuGet.org 存储库。如果将本地文件共享添加为第一个存储库,NuGet 将从那里提取。通过确保所有包都从缓存同步到此存储库,您不再需要担心 NuGet 站点是否可用。
  • 您是否建议我应该将软件包从我的工作站同步到构建服务器?这对我来说听起来不对。我不希望构建服务器依赖于某个工作站。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-21
  • 2013-01-04
  • 1970-01-01
  • 2011-08-03
  • 2020-07-08
  • 1970-01-01
相关资源
最近更新 更多