gpt4 book ai didi

nuget - 在企业中使用Nuget自动包还原有什么优势?

转载 作者:行者123 更新时间:2023-12-01 04:45:25 25 4
gpt4 key购买 nike

我一直在尝试在公司内部实现 Nuget 策略,我想知道在内部托管的 TFS 上处理内部项目时,自动包还原的真正值(value)是什么。

我知道在 OpenSource 项目中或使用外部托管的源代码控制时,不 checkin 外部包可以节省大量磁盘空间,但除了这个优势(节省服务器上的磁盘空间)之外,我看不出使用任何其他优势自动恢复:实际上它给我们带来了一些问题,因为构建机器没有连接到互联网,为了使用该功能,我们要么更改防火墙规则,要么保留 nuget 存储库的本地缓存。

谢谢

最佳答案

正如史蒂文在他的 answer 中指出的那样将包置于源代码控制之外的主要原因是减少需要由源代码控制服务器存储和传输的数据量。显然,在您控制所有硬件的公司中,磁盘空间和网络传输都不是问题,但如果您不需要,为什么要浪费磁盘空间/时间来处理软件包。请注意,包目录的大小可能占工作区总大小的相当大的百分比。在我的例子中,当使用 TFS(我的工作空间)时,packages 目录占总工作空间的 80% - 95%,而我的私有(private)工作空间(基于 git,因此有 .git 文件)占 50% - 75%占用一些空间的目录)。总之,如果您使用包还原,可以在您的源代码管理服务器上节省大量空间。

解决 Nuget.org 访问问题的一种方法是拥有自己的 local package repository .此本地包存储库可以是本地 nuget web service或者只是服务器上的共享目录。因为存储库位于您公司的 LAN 中,所以构建服务器访问本地 nuget 存储库应该不是什么大问题。这种方法的一个附带好处是你的构建过程独立于 Nuget.org(在极少数情况下它会崩溃),更重要的是,你确切地知道哪些包被拉入构建(因为它们将被批准本地存储库中的包)。

对我们来说,是否使用本地 nuget 存储库和包恢复选项的决定取决于我们将所有内部库打包为 nuget 包的决定(我在 answer 中描述了我们的开发过程,以解决另一个 nuget 问题)。因此,我们需要一个本地包存储库来分发这些内部包。这意味着将第三方包添加到这个存储库很容易,因此使用包恢复非常有意义。如果您不将内部库打包为 nuget 包,那么您将把它们与您的解决方案和代码文件放在源代码管理中。在这种情况下,您也可以对第三方库执行相同的操作。

最终这一切都是一种权衡。磁盘空间与基础设施设置的简易性等。选择最适合您的环境的解决方案。

关于nuget - 在企业中使用Nuget自动包还原有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22457642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com