.net Nuget软件包的意义是什么?

.net Nuget软件包的意义是什么?,.net,package,nuget,nuget-package,.net,Package,Nuget,Nuget Package,也许我做错了什么,或者在这里表达了纯粹的无知,但我真的看不出Nuget软件包有什么好处?我最近决定安装一些Nuget软件包来替换我的应用程序中的静态DLL。当我检查由包创建的文件夹时,它们似乎包含许多不同版本的DLL,所有这些DLL都嵌套在一系列子目录下 所有这些文件(其中许多看起来是多余的)都会增加应用程序的总体大小,并降低发布和部署例程的速度吗?还有哪些项目应该放在源代码管理中 就像我说的,我可能在这里遗漏了一些东西,但是有人能告诉我Nuget软件包的优点吗?我开始认为bin文件夹中的一个简

也许我做错了什么,或者在这里表达了纯粹的无知,但我真的看不出Nuget软件包有什么好处?我最近决定安装一些Nuget软件包来替换我的应用程序中的静态DLL。当我检查由包创建的文件夹时,它们似乎包含许多不同版本的DLL,所有这些DLL都嵌套在一系列子目录下

所有这些文件(其中许多看起来是多余的)都会增加应用程序的总体大小,并降低发布和部署例程的速度吗?还有哪些项目应该放在源代码管理中

就像我说的,我可能在这里遗漏了一些东西,但是有人能告诉我Nuget软件包的优点吗?我开始认为bin文件夹中的一个简单dll工作得非常好

  • 每个包都知道它所依赖的其他包,特别是其版本。这有助于确保所有库都兼容
  • 您仍然应该只部署实际需要的DLL版本
  • 您可以决定不将任何DLL放入源代码管理中,因为NuGet具有“包还原”功能,可以在生成时自动加载丢失的包
  • 对于所有依赖项,您都有一个中心位置:只需右键单击项目并选择所需的包。不再搜索下载链接等

  • 谢谢Daniel,源代码管理方面是我一直在努力解决的问题。如何仅选择性地部署所需的DLL。我是否需要检查VS中的包DLL并手动选择不编译?@QF_Developer:当Visual Studio构建项目时,它会将所有需要的DLL复制到bin文件夹。这就是您所部署的。您将看到,您的bin文件夹中不会有同一个包的多个DLL。