📜  什么是NuGet?

📅  最后修改于: 2021-05-29 14:40:05             🧑  作者: Mango

NuGet是.NET的官方软件包管理器。包基本上是带有一些描述性元数据的编译库。 NuGet是任何现代开发平台必不可少的工具,是开发人员可以用来创建,共享和使用有用代码的一种机制。通常,此类代码被捆绑到“程序包”中,这些程序包包含编译后的代码以及使用这些程序包的项目中所需的其他内容。 NuGet软件包包含一个扩展名为.nupkg的单个ZIP文件,该文件由编译的代码(DLL)组成,并包含诸如软件包的版本号之类的信息。

NuGet本身会处理所有中间细节,例如,如果想要共享代码的开发人员创建了一个程序包,并将其发布在公共或私有主机上。然后,程序包使用者从合适的主机获取那些程序包,并将其添加到其项目中,最后在其代码中调用程序包功能。可以使用由组织开发的NuGet软件包代码,因为它支持私有主机和公共nugget.org主机。通过在项目中使用NuGet软件包,还可以方便地使用它来分解代码。 Nuget被认为是可共享的代码单元,但是它不需要任何特定的共享方法。

它提供:

  • NuGet为中央nuget.org存储库提供了对私有托管的支持。
  • NuGet提供了开发人员创建,发布和使用程序包所需的工具。
  • NuGet维护项目中使用的程序包的参考列表,并具有从该列表中恢复和更新这些程序包的功能。
  • 除此之外,NuGet还维护与包的结构如何相关的所有规范,例如本地化和如何引用它们。 Nuget提供了许多API以编程方式使用其所有服务,并为发布Visual Studio扩展的开发人员提供了支持。
  • NuGet提供了程序包缓存和用于程序包的全局文件夹,以简化安装过程以及重新安装过程。如果本地计算机中已经有一个软件包,则缓存将非常有用。

NuGet在总体依赖关系图中有所帮助,从而避免了对同一软件包不同版本的多次引用。一些实用程序包被许多其他包使用。因此,您可以轻松地对同一软件包的不同版本进行更多引用。为了避免将同一软件包的不同版本引入您的项目,NuGet会选择所有使用者可以使用哪个单一版本。即它解决了自己项目中的依赖问题。