如何管理多次使用的Nuget包

时间:2016-11-09 09:52:52

标签: c# .net dll

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

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

1 个答案:

答案 0 :(得分:1)

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

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

使用NuGet a lot advantages,例如在硬盘和其他设备上节省大量空间。例如,我为内部框架创建了NuGet包,因此我们所有项目都只引用这些包,而不是每个项目在其bin文件夹中都有自己的版本。