传统开发方式中对于第三方依赖库,我们需要在VisualStudio里手动引入DLL文件的依赖,这对依赖库的维护十分不利,我们要手动下载DLL文件并正确匹配版本,还要考虑传递依赖的问题,总之非常复杂,而使用NuGet能够自动处理这些问题。
NuGet读作New Get
,是微软为.Net
开发设计的包管理工具,作用类似于NodeJS的npm
或是Python的pip
。这篇笔记我们简单介绍NuGet的使用方法。
NuGet官方网站:https://www.nuget.org/
使用VisualStudio开发.Net程序,NuGet一般会随着.Net开发组件一起安装,我们直接在VisualStudio中使用即可,无需单独安装。如果使用dotnet
命令行工具进行.Net程序开发,dotnet
命令行工具也具备管理NuGet包的功能,我们直接使用即可,通常来说没必要使用单独的nuget.exe
。
NuGet有两种常见的使用方式,一种是在VisualStudio中点击工具->NuGet包管理器->管理解决方案的NuGet程序包
,此时会打开解决方案的NuGet维护页面。
在维护页面中,我们可以图形界面方式搜索、安装、更新、卸载NuGet依赖,依赖包相关的详细信息也会显示在这个页面中,比如它支持的.Net版本等,使用非常方便。
另一种方式是直接访问NuGet官网,在官网页面中搜索我们需要的NuGet依赖。
根据页面提示,我们可以使用.NET CLI
命令行工具或是VisualStudio中的Package Manager命令行安装NuGet依赖。VisualStudio中的Package Manager可以在工具->NuGet包管理器->程序包管理器控制台
打开。
我们在其中执行安装命令即可安装依赖包。
类似于Java中Maven的~/.m2
,使用NuGet为我们的工程安装依赖后,实际上工程会引用NuGet的本地缓存中的DLL文件,该缓存位于~/.nuget
文件夹。
使用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>
删除来移除工程的依赖。