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

NuGet02-包制作及管理

零、文章目录

NuGet02-包制作及管理

1、制作NuGet包

(1)创建类库项目
  • 命名冲突:因为现在包是需要发到公共仓库供所有人使用的,所以名称不能和其他人的包名一样。
  • 命名建议:公司名.产品名.功能模块(如:Microsoft.Extensions.Logging)。
dotnet new classlib -n BluecusliyouPackage
cd BluecusliyouPackage
(2)配置包信息
  • 编辑.csproj文件添加:
<PropertyGroup><PackageId>BluecusliyouPackage</PackageId><Version>1.0.0</Version><Authors>bluecusliyou</Authors><Description>功能描述</Description><PackageTags>工具类,扩展</PackageTags><GeneratePackageOnBuild>true</GeneratePackageOnBuild><PackageLicenseExpression>MIT</PackageLicenseExpression>
</PropertyGroup>
  • 设置说明文档路径,在项目根目录创建 README.md (Markdown 格式),写入包的说明(如功能、安装、使用示例、依赖等)。(可选)
<PropertyGroup><PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
  • 设置多目标(可选)
<PropertyGroup><TargetFrameworks>net6.0;netstandard2.0</TargetFrameworks>
</PropertyGroup>
  • 启用XML文档生成(可选)
<PropertyGroup><GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
(3)生成包文件
  • 使用命令编译打包
# 编译
dotnet build --configuration Release
# 打包
dotnet pack --configuration Release
  • 生成路径:/bin/Release/BluecusliyouPackage.1.0.0.nupkg

2、发布到NuGet.org

(1)获取API密钥
  • 登录nuget.org → 用户菜单 → API Keys

  • 在"API Keys"页面创建新密钥,Scope选择Push,Glob Pattern填*,复制生成的Key备用。

(2)网页端上传
  • 官网点击【Upload】按钮直接上传.nupkg文件
  • 等待自动验证(约 1-5 分钟)

(3)命令行上传
  • YOUR_API_KEY:替换成你创建的 APIKEY
  • 上传完成等待自动验证(约 1-5 分钟)
# 使用dotnet CLI
dotnet nuget push BluecusliyouPackage.1.0.0.nupkg -k YOUR_API_KEY -s https://api.nuget.org/v3/index.json# 或使用nuget.exe
nuget push BluecusliyouPackage.1.0.0.nupkg YOUR_API_KEY -Source https://api.nuget.org/v3/index.json
(4)上传后效果
  • 官网能直接查到,使用 nuget 工具能下载安装

3、维护管理

(1)版本更新
  • 每次更新版本修改.csproj中的<Version>
    • 遵循语义化版本规范(SemVer):主版本号.次版本号.修订号。https://blog.csdn.net/liyou123456789/article/details/149517495
    • 预发布版本使用后缀:1.0.0-beta
  • 重新生成文件,重新上传版本。
(2)包撤回
  • 上传的包是无法撤回的,请慎重。
http://www.dtcms.com/a/291497.html

相关文章:

  • 本地部署Nacos开源服务平台,并简单操作实现外部访问,Windows 版本
  • Oracle数据库索引性能机制深度解析:从数据结构到企业实践的系统性知识体系
  • 【python数据结构算法篇】python数据结构
  • 数据库的介绍和安装
  • Qualcomm Linux 蓝牙指南学习--验证 Fluoride 协议栈的功能(2)
  • day59-可观测性建设-zabbix自定义监控项
  • Shell 脚本编程全面学习指南
  • AK视频下载工具:免费高效,多平台支持
  • 解决图片方向混乱问题的自动化处理方案
  • 51c大模型~合集157
  • 《基于单层软皮和高密度电阻抗层析成像的多模态信息结构》论文解读
  • Python图像处理基础(十)
  • 十六、全方位监控:Prometheus
  • doker centos7安装1
  • QGIS本地下载并部署天地图
  • Java——MyBatis 核心特性全解析:从配置到高级用法
  • Python桌面版数独游戏(三版)-增加难易度模式
  • 深入解析:GRPO决策优化与动态规划在先进RAG系统中的应用
  • Markdown语法完全指南:从入门到精通
  • MySQL 8.0 OCP 1Z0-908 题目解析(32)
  • spring boot windows linux 控制台 文件 乱码问题详解
  • Spring的IOC是什么?它解决了哪些问题?
  • JVM对象创建与内存分配机制
  • 上海RISC-V峰会-香山开源RISC-V CPU随想随记
  • Golang在Web开发中的应用
  • 设备虚拟化
  • hard_err错误
  • 50-字母异位词分组
  • SmartETL循环流程的设计与应用
  • 外辐射源入门综述