我知道像NuGet这样的程序包管理器在我们想要使用第三方组件时帮助我们。
来自Nuget Codeplex页面:
NuGet是一个免费的开源开发人员,专注于包管理 .NET平台系统旨在简化流程 在第二阶段将第三方库合并到.NET应用程序中 发展。
有大量有用的第三方开源库 适用于.NET平台,但适用于那些不熟悉OSS的人 生态系统,将这些库拉入项目可能会很痛苦。
我们以ELMAH为例。这是一个很好的错误记录实用程序 它与其他库没有依赖关系,但仍然是一个挑战 整合到一个项目中。这些是它需要采取的步骤:
Find ELMAH Download the correct zip package. “Unblock” the package. Verify its hash against the one provided by the hosting environment. Unzip the package contents into a specific location in the solution. Add an assembly reference to the assembly. Update web.config with the correct settings which a developer needs to search for.
这适用于没有依赖关系的库。想象一下这样做 对于NHibernate.Linq,它有多个依赖项,每个都需要 类似的步骤。我们可以做得更好!
NuGet将包的所有这些常见和繁琐的任务自动化为 以及它的依赖性。它消除了几乎所有的挑战 将第三方开源库合并到一个项目中 源树
这些步骤是我们在设置项目时所做的简单任务。它仅用于自动添加第三方组件并降低配置文件中出现错误的可能性?或者它有更多的责任!
答案 0 :(得分:17)
它的价值隐藏在开放中:NuGet等软件包 manager 可帮助您使用自动化处理软件依赖性。许多人假设它仅适用于开源或第三方组件,但您也可以将它用于您自己的内部包。
关于NuGet的好处是(仅列举一些好处):
以上列表并非详尽无遗,但我希望我已经涵盖了这个答案的主要好处。我相信还有更多。
干杯, 泽维尔
答案 1 :(得分:3)
使用 NuGet 的原因是您不必运送项目中的所有库,从而减少项目规模。使用NuGet Power Tools,通过在 Packages.config 文件中指定软件包版本,您可以在第一次运行项目时下载所有必需的库。
实时演示:项目部署时缩小项目规模很重要。如果解决方案就好 拥有500Mb的代码和200Mb的封装尺寸,真正的额外200mb 每次上传项目的成本。而不是上传具体 dll文件我们需要在packages.config文件中设置它们的引用。