Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以为没有internet的计算机创建nuget软件包缓存?_Nuget_Nuget Package_Nuget Package Restore - Fatal编程技术网

是否可以为没有internet的计算机创建nuget软件包缓存?

是否可以为没有internet的计算机创建nuget软件包缓存?,nuget,nuget-package,nuget-package-restore,Nuget,Nuget Package,Nuget Package Restore,我们有一个构建服务器,它不能访问互联网。它从git服务器获取我们的源代码,然后尝试构建它们 目前,它失败了(很明显),因为这台计算机没有互联网接入。我和它讨论过,他们同意让我们把它连接到互联网上做一些维护,但他们拒绝让它一直连接 我的问题是: 是否可以创建某种本地nuget缓存,当我们在包上进行更改时可以填充这种缓存,然后构建服务器将在连接到服务器之前尝试使用此缓存?我可以想出几种解决方案 下载解决方案使用的软件包 我最近发现,询问的人想要在脱机计算机上使用软件包。我对另一个问题的回答总结如下:

我们有一个构建服务器,它不能访问互联网。它从git服务器获取我们的源代码,然后尝试构建它们

目前,它失败了(很明显),因为这台计算机没有互联网接入。我和它讨论过,他们同意让我们把它连接到互联网上做一些维护,但他们拒绝让它一直连接

我的问题是:


是否可以创建某种本地nuget缓存,当我们在包上进行更改时可以填充这种缓存,然后构建服务器将在连接到服务器之前尝试使用此缓存?

我可以想出几种解决方案

下载解决方案使用的软件包 我最近发现,询问的人想要在脱机计算机上使用软件包。我对另一个问题的回答总结如下:创建一个nuget.config,将global packages文件夹设置为当前为空的文件夹,执行还原,然后将所有.nupkg文件复制到目标。NuGet支持本地文件夹源,所以只需将这些Nupkg放到网络共享上,并告诉构建服务器将该网络共享用作NuGet源

一个明显的问题是,每次任何开发人员安装新包(或现有包的新版本)时,都需要将新包复制到本地提要

本地镜像nuget.org的包 我的团队成员有一个工具,可以使用它查找所有未删除的包(可以选择筛选未列出的包),并在本地下载所有140万到180万个包。他们的实现大约需要一周的时间来完成下载。出于兴趣,我写了一些东西,使用Azure功能自动扩展作业,并设法在2小时内下载所有软件包。blob存储帐户现在是2.4 TiB,因此您几乎肯定不想这样做,除非您这样做是为了分析nuget.org上的包,而不是将其用作恢复包的源。您可能希望定期更新本地提要

使用可读缓存服务器 因为构建服务器是网络连接的,所以请与IT部门合作,获得一个直通式缓存服务器。如果您的公司已经使用HTTP代理,请与IT部门合作,允许生成服务器使用它,然后将其配置为HTTP代理


如果您的公司没有HTTP代理,您可以在公司中安装几个。其中一些支持直通式缓存,因此让您的IT部门在公司DMZ中设置它,您的构建服务器可以使用它从internet上的提要获取包。

我可以想出几种解决方案

下载解决方案使用的软件包 我最近发现,询问的人想要在脱机计算机上使用软件包。我对另一个问题的回答总结如下:创建一个nuget.config,将global packages文件夹设置为当前为空的文件夹,执行还原,然后将所有.nupkg文件复制到目标。NuGet支持本地文件夹源,所以只需将这些Nupkg放到网络共享上,并告诉构建服务器将该网络共享用作NuGet源

一个明显的问题是,每次任何开发人员安装新包(或现有包的新版本)时,都需要将新包复制到本地提要

本地镜像nuget.org的包 我的团队成员有一个工具,可以使用它查找所有未删除的包(可以选择筛选未列出的包),并在本地下载所有140万到180万个包。他们的实现大约需要一周的时间来完成下载。出于兴趣,我写了一些东西,使用Azure功能自动扩展作业,并设法在2小时内下载所有软件包。blob存储帐户现在是2.4 TiB,因此您几乎肯定不想这样做,除非您这样做是为了分析nuget.org上的包,而不是将其用作恢复包的源。您可能希望定期更新本地提要

使用可读缓存服务器 因为构建服务器是网络连接的,所以请与IT部门合作,获得一个直通式缓存服务器。如果您的公司已经使用HTTP代理,请与IT部门合作,允许生成服务器使用它,然后将其配置为HTTP代理


如果您的公司没有HTTP代理,您可以在公司中安装几个。其中一些支持直通式缓存,因此让您的IT部门在公司DMZ中设置它,您的构建服务器可以使用它从internet上的源获取包。

我的答案有帮助吗?我的答案有帮助吗?1)将是我们能做的最接近的,我们将看一看,谢谢!你能分享一下你是如何实现下载所有nuget软件包的吗?编写代码来阅读nuget.org的“目录”(事件日志)来查找每个软件包的列表,将每个软件包写入一个队列,并使用具有自动缩放功能的Azure函数来下载和保存队列中的每个url。更详细地介绍了他们是如何做类似的事情的。1)这将是我们能做的最接近的,我们会看一看,谢谢!你能分享一下你是如何实现下载所有nuget软件包的吗?编写代码来阅读nuget.org的“目录”(事件日志)来查找每个软件包的列表,将每个软件包写入一个队列,并使用具有自动缩放功能的Azure函数来下载和保存队列中的每个url。详细介绍了他们是如何做类似事情的。