我不明白 - 有人可以向我解释为什么我应该使用NuGet而不是通过setup.exe或MSI安装一堆库?有什么优势?
例如,通过NuGet安装Entity Framework 4.3而不是下载设置更好吗?此外,如果我通过NuGet安装实体框架,那么它可用于我创建的任何新解决方案或项目(在这里有点困惑).
基本上NuGet做了正常安装不能做什么(反之亦然!)
我知道当我们想要使用第三方组件时,像NuGet这样的Package Manager会帮助我们.
来自Nuget Codeplex页面:
NuGet是一个面向.NET平台的免费开源开发人员软件包管理系统,旨在简化在开发过程中将第三方库合并到.NET应用程序中的过程.
.NET平台上有大量有用的第三方开源库,但对于那些不熟悉OSS生态系统的人来说,将这些库拉入项目可能会很麻烦.
我们以ELMAH为例.这是一个很好的错误记录实用程序,它不依赖于其他库,但仍然是集成到项目中的挑战.这些是它需要采取的步骤:
Run Code Online (Sandbox Code Playgroud)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为包及其依赖项自动执行所有这些常见和繁琐的任务.它消除了将第三方开源库合并到项目源代码树中的几乎所有挑战
这些步骤是我们在设置项目时所做的简单任务.它仅用于自动添加第三方组件并降低配置文件中出现错误的可能性?或者它有更多的责任!