当前位置: 首页 > news >正文

使用 Visual Studio 快速创建 NuGet 程序包并发布到 NuGet 官网

前言

在前面的 .NET EF Core 快速入门实战教程章节中我们创建了一个名为 EFCoreGenericRepository 的 .NET 9 通用仓储类库,今天我们来把这个 EF Core 通用仓储类库打包成 NuGet 程序包并发布到 NuGet 官网(https://www.nuget.org),并在项目中引入我们发布的 NuGet 程序包。

本文将使用 Visual Studio 2022 将 .NET 类库制作为 NuGet 包,然后使用 .NET CLI 工具将其发布到 NuGet 官网(https://www.nuget.org)。

  • GitHub:https://github.com/YSGStudyHards/EFCoreExercise
  • Gitee:https://gitee.com/ysgdaydayup/EFCoreExercise

image

NuGet 简介

NuGet 包是具有 .nupkg 扩展的单个 ZIP 压缩文件,此扩展包含编译代码 (DLL)、与该代码相关的其他文件以及描述性清单(包含包版本号等关键信息)。使用代码的开发人员共享创建包,并将其发布到公用或专用主机。包使用者从适合的主机获取这些包,将它们添加到项目,然后在其项目代码中调用包的功能。在此过程中,NuGet 会自动处理所有底层依赖和安装细节。

  • https://www.nuget.org

image

在 NuGet.org 上注册个人帐户

必须注册个人帐户才能在 NuGet 官网(https://www.nuget.org) 上发布和管理包。

  • https://www.nuget.org/users/account/LogOn

image

image

创建并获取 NuGet 包的 API 密钥

选择右上角的用户名,然后选择 API keys:

image

创建 NuGet 包的 API 密钥:

image

 

获取 NuGet 包的 API 密钥:

注意密钥复制一次后就不能再复制 API 密钥了,需要再复制 API 密钥的话则需要点击重新生成按钮。

image

image

配置包的属性

EFCoreGenericRepository 类库 => 属性 => 填写相关包的配置信息:

image

生成 NuGet 包

方式一、在构建时生成 NuGet 包

属性 => 常规 => 勾选在生产操作期间创建包文件 => 切换为Release => 重新生成:

image

image

image

方式二、使用 .NET CLI 生成 NuGet 包

在项目根目录(含 .csproj 的目录)执行,在 Release 配置下打包(推荐):

dotnet pack -c Release

image

image

使用 .NET CLI 发布 NuGet 包

接下来我们使用 .NET CLI 来发布生成好的 NuGet 包到 NuGet 官网(https://www.nuget.org)中。

在包含 .nupkg 文件的文件夹运行以下命令。指定 .nupkg 文件名,并将密钥值替换为 API 密钥。

dotnet nuget push EFCoreGenericRepository.1.2.0.nupkg --api-key 你的API密钥 --source https://api.nuget.o

image

在 NuGet.org 上查看发布成功的 NuGet 包

image

  • https://www.nuget.org/packages/EFCoreGenericRepository/

image

image

在项目中引入发布成功的 NuGet 包

.NET CLI 命令安装

dotnet add package EFCoreGenericRepository --version 1.2.0

NuGet 包管理中安装和使用

NuGet 包安装

image

image

image

NuGet 包使用

var _repository = new Repository<SchoolDbContext>(new SchoolDbContext());
var teachers = _repository.GetAllAsync<TeacherInfo>().Result;

image

更多 Visual Studio 实用功能

  • https://github.com/YSGStudyHards/DotNetGuide

image

http://www.hskmm.com/?act=detail&tid=32050

相关文章:

  • 反配容斥
  • 怎么激活win11?笔记本重装系统后怎么激活Windows?
  • AVG Clear:彻底卸载AVG产品的专业工具
  • 现代 PHP8+ 实战特性介绍 Enums、Fibers 和 Attributes
  • php 1026
  • 用【WPF+Dlib68】实现 侧脸 眼镜虚拟佩戴 - 用平面图表现空间视觉 - 行人-
  • 科学背景如何赋能云计算业务战略
  • 【GitHub每日速递 251016】23k star,Daytona:90ms内极速运行AI代码,安全弹性基础设施来袭!
  • 用 【C# + Winform + Dlib68点】 实现静图眼镜虚拟佩戴 - 行人-
  • 图神经网络前沿技术与应用探索
  • MVCC、幻读、间隙锁与临键锁(三)
  • MVCC、幻读、间隙锁与临键锁
  • MVCC、幻读、间隙锁与临键锁(二)
  • 读AI赋能01超级能动性
  • 生物聚酯塑料回收技术创新与商业应用
  • 189 轮转数组 - MKT
  • SGD 到 AdamW 优化器的实践选型指南
  • 图文并茂展示CSS li 排版大合集,总有一款是你刚好需要的
  • 10.15 闲话
  • 函数的类型注释器
  • 如何手动构建一个线性回归模型
  • DshanPI-A1 RK3576 gmrender-resurrect B站投屏
  • 组件级异步加载与预加载策略
  • 好记性不如烂笔头之C语言优先级查询
  • SAM系列论文浅析
  • 2023 ICPC Xian
  • 2025-10-15 ?
  • 为什么一部电影,一本书一看就喜欢
  • 20251015打卡
  • 实验一 现代C++编程初体验