从Nuget.org或我们自己的Nuget Server中获取NuGet?

时间:2018-02-22 20:41:00

标签: architecture nuget nuget-server

我们正在运行一个TeamCity持续集成系统,它有自己的内置NuGet服务器。

我们有自己的专有NuGet包发布到那里。我们创建的其中一个NuGet包是一个包含所有第三方DLL的NuGet。

其中一些第三方DLL可通过https://www.nuget.org/获得。

在架构决策方面,什么是更好的解决方案?

  1. 取出当前可用的所有第三方DLL 我们自己的ThirdParty Nuget,因此我们现在从nuget.org上托管的Nugets中提取DLL 我们产品的建设。

  2. 保留我们创建的当前第三方NuGet,这意味着我们确切知道产品中的DLL。

1 个答案:

答案 0 :(得分:1)

我们为我们的产品实施了第二个选项,但略有不同:我们使用的每个第三方库都有单独的NuGet包。

原因如下:

  • 我们可以独立地将新版本的第三方库添加到我们公司的NuGet服务器中。因此,不同的产品可以拉出第三方库的不同组合。
  • 对于第三方库的每次更改,都无需重新部署一个大型软件包。这节省了服务器上的磁盘空间,这可能成为大量第三方库的问题。

我们不使用nuget.org的原因也是双重的:

  • 首先,它的性能:通过以太网从本地服务器拔出的速度明显快于通过互联网传输。
  • 第二个(也是更重要的),它的安全性:我们永远无法控制将哪个包上传到nuget.org。因此,有人可以用恶意版本交换包,我们会将其与我们的产品一起部署。