为什么要使用NuGet直接在我的机器上安装库

Cal*_*nus 38 visual-studio nuget

我不明白 - 有人可以向我解释为什么我应该使用NuGet而不是通过setup.exe或MSI安装一堆库?有什么优势?

例如,通过NuGet安装Entity Framework 4.3而不是下载设置更好吗?此外,如果我通过NuGet安装实体框架,那么它可用于我创建的任何新解决方案或项目(在这里有点困惑).

基本上NuGet做了正常安装不能做什么(反之亦然!)

Kil*_*man 32

除了简单地为您的项目添加包之外,我认为NuGet的最大优势是依赖管理.

NuGet允许项目所有者将其库打包为包.之前,如果他们依赖于log4net之类的其他库,他们会将这些程序集包含在他们的setup/zip文件中并上传到他们的网站.

使用NuGet,他们只需在.nuspec文件中添加对这些外部包的引用.当NuGet安装软件包时,它会看到存在依赖关系,并会自动下载并安装这些软件包.它还支持冲突管理,因此如果2个包依赖于不同的版本,它将找出要安装的正确版本.

我认为确定NuGet是否适合您的最佳方法是实际尝试使用它.我相信一旦你这样做,你就会意识到它有很多好处.


Jon*_*Jon 19

Nuget提供了几个额外的好处:

  • 它通过添加对必要程序集的引用,创建和添加项目文件(例如配置)等来自动配置项目.
  • 它提供包更新
  • 非常方便地完成所有这些工作


小智 16

有什么优势?

Nuget简化了第三个库的合并:使用单个命令行(Install-Package EntityFramework),可以使您的软件包可用于您的项目.而不是谷歌搜索 - 找到package-download-setup-引用项目中的包...

自动更新不是必需的,Nuget配置文件允许您指定应用程序兼容的版本或版本范围.

此外,如果我通过Nuget安装实体框架,那么它可用于我创建的任何新解决方案或项目

安装软件包后,dll将复制到解决方案级别的目录中,然后您可以从解决方案的其他项目中引用它们.

对于每个新解决方案,重新安装软件包是更好的解决方案.因为nuget很容易,所以不会有问题.


Val*_*lov 6

Nuget有助于创建DLL地狱并使解决方案失控,特别是当所谓的"包"的不同版本发挥作用时.除了汇编版本,现在还有nuget包版本.Nuget只是在DLL上添加另一个包装器,并没有做任何会使开发人员的生活更轻松的事情.

  • 问题是 - 为什么要使用 Nuget。我的答案是——让他们的生活更艰难并增强 dll 地狱问题。这怎么不提供答案? (2认同)
  • 所以如果有人问“为什么我这么漂亮?” 在堆栈溢出时,唯一应该出现的答案是关于那个人有多漂亮的解释?即使问题是要求积极的,考虑消极的也更具建设性。 (2认同)