Nuget包的作用是什么?

11
也许我在这里做错了什么或者表现得非常无知,但我真的看不出Nuget包有什么好处?最近,我决定安装一些Nuget包来替换应用程序中的静态DLL。当我检查由这些包创建的文件夹时,它们似乎包含许多不同版本的DLL,都嵌套在一系列子目录下。
所有这些文件,其中许多似乎是冗余的,会增加应用程序的总体大小并减慢发布和部署例程吗?此外,哪些项目应该放入源代码控制?
就像我说的那样,我可能漏掉了什么,但有人能给我解释一下Nuget包的优点吗?我开始觉得,在bin文件夹中放置一个简单的dll完全可以正常工作?
1个回答

10
  1. 每个软件包都知道它依赖的其他软件包 - 特别是它所依赖的版本。这有助于确保所有库都兼容。
  2. 你仍然只应该部署实际需要的 DLL 版本。
  3. 你可以决定不将 任何 DLL 放入源代码控制中,因为 NuGet 有一个“包还原”功能,在构建时自动加载缺失的包。
  4. 你有一个集中处理所有依赖关系的地方:只需右键单击项目,选择需要的软件包即可。不再需要搜索下载链接等等。

谢谢 Daniel,源代码控制是我遇到困难的部分。我如何有选择地仅部署我需要的 dll 文件?我需要通过 VS 中的打包 dll 并手动选择不编译吗? - QFDev
3
当 Visual Studio 构建您的项目时,它会将所有需要的 DLL 复制到 bin 文件夹中。这就是您部署的内容。您会发现,在 bin 文件夹中不会有同一软件包的多个 DLL。 - Daniel Hilgarth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接