前言
在前面的 .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
NuGet 简介
NuGet 包是具有 .nupkg 扩展的单个 ZIP 压缩文件,此扩展包含编译代码 (DLL)、与该代码相关的其他文件以及描述性清单(包含包版本号等关键信息)。使用代码的开发人员共享创建包,并将其发布到公用或专用主机。包使用者从适合的主机获取这些包,将它们添加到项目,然后在其项目代码中调用包的功能。在此过程中,NuGet 会自动处理所有底层依赖和安装细节。
在 NuGet.org 上注册个人帐户
必须注册个人帐户才能在 NuGet 官网(https://www.nuget.org) 上发布和管理包。
创建并获取 NuGet 包的 API 密钥
选择右上角的用户名,然后选择 API keys:
创建 NuGet 包的 API 密钥:
获取 NuGet 包的 API 密钥:
注意密钥复制一次后就不能再复制 API 密钥了,需要再复制 API 密钥的话则需要点击重新生成按钮。
配置包的属性
EFCoreGenericRepository 类库 => 属性 => 填写相关包的配置信息:
生成 NuGet 包
方式一、在构建时生成 NuGet 包
属性 => 常规 => 勾选在生产操作期间创建包文件 => 切换为Release => 重新生成:
方式二、使用 .NET CLI 生成 NuGet 包
在项目根目录(含 .csproj 的目录)执行,在 Release 配置下打包(推荐):
dotnet pack -c Release
使用 .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.org/v3/index.json
在 NuGet.org 上查看发布成功的 NuGet 包
在项目中引入发布成功的 NuGet 包
.NET CLI 命令安装
dotnet add package EFCoreGenericRepository --version 1.2.0
NuGet 包管理中安装和使用
NuGet 包安装
NuGet 包使用
var \_repository = new Repository<SchoolDbContext>(new SchoolDbContext());
var teachers = \_repository.GetAllAsync<TeacherInfo>().Result;
.NET EF Core快速入门实战教程合集
- 第一天:.NET EF Core 快速入门实战开篇👉: https://articles.zsxq.com/id\_buh07mipm7ef.html
- 第二天:.NET EF Core 主要开发模式详解👉: https://articles.zsxq.com/id\_a37f73wi6f8a.html
- 第三天:.NET EF Core 介绍与开发环境搭建👉: https://articles.zsxq.com/id\_qqjlw3zrnrv9.html
- 第四天:.NET EF Core 基本使用与查询操作👉: https://articles.zsxq.com/id\_fogs68dj1edu.html
- 第五天:.NET EF Core 高级查询技巧与实操👉: https://articles.zsxq.com/id\_whgux8pmdogm.html
- 第六天:在 VS2022 中安装 EF Core.Visualizer 插件直观查看 EF Core 的查询计划👉: https://articles.zsxq.com/id\_h5mgr8pkc4ax.html
- 第七天:在 ASP.NET Core WebAPI 中使用 EF Core 连接 MySQL 执行基础的操作👉: https://articles.zsxq.com/id\_pwweuwbcwxh0.html
- 第八天:在 ASP.NET Core WebAPI 中集成 MiniProfiler 对接口性能监控与诊断👉: https://articles.zsxq.com/id\_z2qw12djaf7t.html
- 第九天:.NET EF Core 性能调优策略与实操👉: https://articles.zsxq.com/id\_ufb5u34ernvl.html
- 第十天:使用 .NET EF Core 数据库迁移来管理数据库架构👉: https://articles.zsxq.com/id\_l7zfur93nt76.html
- 第十一天:.NET EF Core 数据库迁移数据种子设置的4种方式👉: https://articles.zsxq.com/id\_loqw47qp7swc.html
- 第十二天:掌握 .NET EF Core 逆向工程实现 DBFirst 开发 👉:https://articles.zsxq.com/id\_7f07a9ptvpim.html
- 第十三天:掌握 .NET EF Core 日志记录与异常处理,构建健壮应用!👉: https://articles.zsxq.com/id\_fdlo2ibpldt3.html
- 第十四天:.NET EF Core 通用仓储模式的设计与实现👉: https://articles.zsxq.com/id\_bpd4q83s8930.html
- 第十五天:.NET EF Core 工作单元模式的设计与实现👉: https://articles.zsxq.com/id\_ixihaz7jelo4.html
- 第十六天:将 EF Core 通用仓储类库打包成 NuGet 程序包并发布到 NuGet 官网 👉:https://articles.zsxq.com/id\_ejfrfcg3swbf.html
- 免费开源的程序员简历模板 ===================================================================================================================================================
- 了解作者&获取更多学习资料 ======================================================================================================================================================================================================================================
- 程序员常用的开发工具软件推荐 =======================================================================================================================================================================================================================================
- 加入DotNetGuide技术社区交流群 =============================================================================================================================================================================================================================================
- C#/.NET/.NET Core推荐学习书籍
- C#/.NET/.NET Core学习视频汇总
- .NET/.NET Core ORM框架资源汇总 =================================================================================================================================================================================================================================================
- C#/.NET/.NET Core开发者学习路线集 ==================================================================================================================================================================================================================================================
- C#/.NET/.NET Core面试宝典(基础版)
- C#/.NET/.NET Core优秀项目和框架推荐
- C#/.NET/.NET Core学习、工作、面试指南
学习是一个永无止境的过程,你知道的越多,你不知道的也会越多,在有限的时间内坚持每天多学一点,你一定能成为你想要成为的那个人。不积跬步无以至千里,不积小流无以成江海!
