.net 如何使用TeamCity备份下载的Nuget软件包

.net 如何使用TeamCity备份下载的Nuget软件包,.net,nuget,teamcity,.net,Nuget,Teamcity,我的客户希望保留项目中使用过的每个Nuget包的本地副本,这样即使Nuget.org不可用,也可以构建应用程序的旧版本。这些包不是在项目中创建的,只是使用Nuget.org上的Nuget restore下载的 如果包最终位于运行TeamCity的服务器之外的另一台服务器上的文件共享上,那就太好了 一种简单的方法是在Nuget安装程序步骤之后添加一个构建步骤,将每个.nupkg文件复制到所需的文件共享中。这是解决这个问题的好办法,还是有更好的办法 构建代理上存储的Nuget包在哪里?是否可以使用某

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

如果包最终位于运行TeamCity的服务器之外的另一台服务器上的文件共享上,那就太好了

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


构建代理上存储的Nuget包在哪里?是否可以使用某些环境变量或类似的内容引用该文件夹,以便复制脚本不需要硬编码路径?

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


如果您想自动将这些内容上传到文件共享,我建议您使用类似BitTorrent Sync的方法

我刚刚意识到这些包可以在与我的VisualStudio解决方案相同的文件夹中找到。我引用那个文件夹不会有问题。但是,关于如何更好地执行此操作的问题仍然存在。我更愿意只备份此特定VS解决方案中使用的Nuget软件包,并非此TeamCity服务器上构建的任何解决方案所使用的所有包。让您的TeamCity服务器仅使用本地存储库中的NuGet包的好处之一是,即使NuGet.org宕机,您仍然能够构建,这已经发生过几次了。但是您首先要如何将包送到构建服务器?NuGet会自动恢复packages.config文件中列出的包。它将从存储库列表下载这些包。默认值为官方NuGet.org存储库。如果您将本地文件共享添加为第一个存储库,那么NuGet将从中获取信息。通过确保将所有包从缓存同步到此存储库,您不再需要担心NuGet站点是否可用。您是否建议我将包从工作站同步到生成服务器?我听上去不太对。我不希望构建服务器依赖于某个工作站。