NuGet包管理 #
一、NuGet概述 #
1.1 什么是NuGet #
NuGet是.NET的包管理器,用于管理项目依赖。
1.2 NuGet功能 #
- 安装包
- 更新包
- 还原包
- 创建包
- 发布包
二、使用NuGet包 #
2.1 命令行安装 #
bash
dotnet add package Newtonsoft.Json
dotnet add package Microsoft.EntityFrameworkCore --version 8.0.0
dotnet add package Serilog --version 3.0.0
2.2 Visual Studio安装 #
- 右键项目 → 管理NuGet程序包
- 搜索包名
- 选择版本
- 点击安装
2.3 包引用格式 #
xml
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
</ItemGroup>
2.4 更新包 #
bash
dotnet add package Newtonsoft.Json
dotnet list package --outdated
dotnet list package --vulnerable
2.5 删除包 #
bash
dotnet remove package Newtonsoft.Json
三、包还原 #
3.1 自动还原 #
bash
dotnet restore
dotnet build
dotnet run
3.2 packages.config #
xml
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="13.0.3" />
</packages>
3.3 全局包目录 #
bash
dotnet nuget locals all --list
dotnet nuget locals all --clear
四、创建NuGet包 #
4.1 项目配置 #
xml
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<PackageId>MyLibrary</PackageId>
<Version>1.0.0</Version>
<Authors>Your Name</Authors>
<Description>My awesome library</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/user/repo</RepositoryUrl>
</PropertyGroup>
</Project>
4.2 打包 #
bash
dotnet pack
dotnet pack -c Release
dotnet pack -p:PackageVersion=1.0.1
4.3 nuspec文件 #
xml
<?xml version="1.0"?>
<package>
<metadata>
<id>MyLibrary</id>
<version>1.0.0</version>
<authors>Your Name</authors>
<description>My library</description>
<dependencies>
<group targetFramework="net8.0">
<dependency id="Newtonsoft.Json" version="13.0.3" />
</group>
</dependencies>
</metadata>
</package>
五、发布NuGet包 #
5.1 配置源 #
bash
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
5.2 发布 #
bash
dotnet nuget push MyLibrary.1.0.0.nupkg -s https://api.nuget.org/v3/index.json -k YOUR_API_KEY
5.3 本地源 #
bash
dotnet nuget add source ./packages -n Local
dotnet nuget push MyLibrary.1.0.0.nupkg -s Local
六、常用NuGet包 #
6.1 JSON处理 #
bash
dotnet add package Newtonsoft.Json
dotnet add package System.Text.Json
6.2 日志 #
bash
dotnet add package Serilog
dotnet add package NLog
dotnet add package Microsoft.Extensions.Logging
6.3 数据库 #
bash
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Dapper
dotnet add package Npgsql
七、总结 #
NuGet要点:
| 要点 | 说明 |
|---|---|
| add package | 安装包 |
| remove package | 删除包 |
| restore | 还原包 |
| pack | 打包 |
| push | 发布 |
下一步,让我们学习ASP.NET Core!
最后更新:2026-03-26