NuGet 包管理工具

传统开发方式中对于第三方依赖库,我们需要在VisualStudio里手动引入DLL文件的依赖,这对依赖库的维护十分不利,我们要手动下载DLL文件并正确匹配版本,还要考虑传递依赖的问题,总之非常复杂,而使用NuGet能够自动处理这些问题。

NuGet读作New Get,是微软为.Net开发设计的包管理工具,作用类似于NodeJS的npm或是Python的pip。这篇笔记我们简单介绍NuGet的使用方法。

NuGet官方网站:https://www.nuget.org/

安装NuGet工具

使用VisualStudio开发.Net程序,NuGet一般会随着.Net开发组件一起安装,我们直接在VisualStudio中使用即可,无需单独安装。如果使用dotnet命令行工具进行.Net程序开发,dotnet命令行工具也具备管理NuGet包的功能,我们直接使用即可,通常来说没必要使用单独的nuget.exe

NuGet使用

NuGet有两种常见的使用方式,一种是在VisualStudio中点击工具->NuGet包管理器->管理解决方案的NuGet程序包,此时会打开解决方案的NuGet维护页面。

在维护页面中,我们可以图形界面方式搜索、安装、更新、卸载NuGet依赖,依赖包相关的详细信息也会显示在这个页面中,比如它支持的.Net版本等,使用非常方便。

另一种方式是直接访问NuGet官网,在官网页面中搜索我们需要的NuGet依赖。

根据页面提示,我们可以使用.NET CLI命令行工具或是VisualStudio中的Package Manager命令行安装NuGet依赖。VisualStudio中的Package Manager可以在工具->NuGet包管理器->程序包管理器控制台打开。

我们在其中执行安装命令即可安装依赖包。

NuGet的本地缓存

类似于Java中Maven的~/.m2,使用NuGet为我们的工程安装依赖后,实际上工程会引用NuGet的本地缓存中的DLL文件,该缓存位于~/.nuget文件夹。

NuGet包和csproj工程描述文件

使用NuGet安装完成依赖包后,我们可以直接打开工程的/csproj查看,下面是一个例子。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
  </ItemGroup>

</Project>

假设这里我们安装了Microsoft.Extensions.Logging依赖,该依赖的包名和版本被写在了.csproj<PackageReference>节点中。实际上,我们可以很方便的打开该文件查看当前工程使用了哪些依赖包,我们也可以直接将对应<PackageReference>删除来移除工程的依赖。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap