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安装 #

  1. 右键项目 → 管理NuGet程序包
  2. 搜索包名
  3. 选择版本
  4. 点击安装

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