如何管理多次使用的 Nuget 包

How to manage Nuget Packages used more than once

我是一个恐龙开发者,所以 NuGet 对我来说比较陌生,我习惯于管理第三方开源库,这些库有一个带有代码或二进制文件的项目,我会在必要时和这个项目保持更新将 dll 发布到我在所有项目中引用库的公共文件夹中。这使得维护第三方库变得容易,在我的项目中,我只需要在更新库时重建,一切正常。现在许多开源项目在 NuGet 上发布了它们的库,并且很容易在项目中引用它们,但我担心我必须为每个使用它的项目下载库的副本,这在我看来是会导致混乱的东西。特别是如果我有 2 个构建 dll 的项目最终使用相同包的 2 个不同版本并且在有问题和冲突的应用程序中使用。所以我对那些长期使用 NuGet 的人的问题是: 我可以像处理其他库一样处理 NuGet 包并创建一个引用它们的项目,使用它在单个文件夹中发布 dll,然后从我的 dll 和已发布文件夹中的应用程序引用包的 dll。

希望我已经说清楚了。感谢您就此主题分享任何想法 萨布丽娜

将所有项目的所有第 3 方库放在一个文件夹中可能会导致 dll 版本地狱。如果您更新包含重大更改并被其他项目引用的单个 dll,那么您将拥有 fix/rebuild 所有引用它的项目。

要解决为每个项目下载相同包的问题,​​您可以创建一个 local repository and configure Visual Studio to use your local repository。因此,如果您的本地存储库包含单个版本的 log4net,您将只能使用该特定版本。您甚至可以将存储库配置为使用共享文件夹,在这种情况下,所有开发人员甚至您的构建服务器都可以使用该存储库。

使用NuGet有a lot advantages,比如在硬盘上节省很多space等等。例如,我为我们的内部框架创建了 NuGet 包,所以我们所有的项目都只引用这些包,而不是每个项目在其 bin 文件夹中都有自己的版本。