首页 > 其他分享 >从0到1发布自己的Nuget包

从0到1发布自己的Nuget包

时间:2023-05-11 09:56:37浏览次数:42  
标签:nuget 自己 Nuget dotnet 发布 密钥 str EasyUtilityCore org

Nuget

1、创建示例项目

--创建文件夹EasyUtilityCore
md EasyUtilityCore
cd EasyUtilityCore
​
--新建EasyUtilityCore类库
dotnet new classlib

新建扩展StringExtension

using System;
​
namespace EasyUtilityCore
{
    public static class StringExtension
    {
        /// <summary>
        /// 忽略空格与大小写
        /// </summary>
        /// <param name="strA"></param>
        /// <param name="strB"></param>
        /// <returns></returns>
        public static bool CompareIgnoreCaseAndSpace(this string strA, string strB)
        {
            if (strA == null || strB == null)
            {
                return strA == strB;
            }
            return strA.Trim().ToLower() == strB.Trim().ToLower();
        }
​
        /// <summary>
        /// 超长字符串截取
        /// 处理较短字符串截取Case
        /// </summary>
        /// <param name="str"></param>
        /// <param name="length"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public static string Sub(this string str, int length, int index = 0)
        {
            if (str == null)
            {
                return str;
            }
            return str.Substring(index, Math.Min(str.Length, length));
        }
    }
}
--构建类库
dotnet build

2、添加包元数据

每个 NuGet 包都需要一个清单,用以描述包的内容和依赖项。 在最终包中,清单是基于项目文件中包含的 NuGet 元数据属性生成的 文件。

打开 .csproj项目文件,并在现有 <PropertyGroup> 标记中添加以下属性。

<PackageId>EasyUtilityCore</PackageId>
<Version>1.0.0</Version>
<Authors>wzyandi</Authors>
<Company>wzyandi</Company>
<Description>Some common extension methods</Description>
<RepositoryUrl>https://github.com/amerina/EasyUtilityCore</RepositoryUrl>
<PackageProjectUrl>https://github.com/amerina/EasyUtilityCore</PackageProjectUrl>
<RepositoryType>Git</RepositoryType>
<PackageTags>ASP.NET Core,Utility Method</PackageTags>
<Copyright>Amerina</Copyright>

PackageId在 nuget.org必须是唯一的。

3、构建包

dotnet pack

查看EasyUtilityCore\bin\Debug路径已生成EasyUtilityCore.1.0.0.nupkg文件

4、发布包

.nupkg 文件发布到 nuget.org,方法是将 dotnet nuget push命令与从 nuget.org 获取的 API 密钥配合使用。

获取 API 密钥

  1. 登录你的 nuget.org 帐户,或创建一个帐户(如果你还没有帐户)。

  2. 选择用户名(在右上角),然后选择“API 密钥”。

  3. 选择 “创建”,并提供密钥的名称。

  4. “选择范围”下,选择“ 推送”。

  5. “选择包>Glob 模式”下,输入 *。

  6. 选择“创建”。

  7. 选择 “复制 ”以复制新密钥。

在包含 .nupkg 文件的文件夹运行以下命令。

dotnet nuget push EasyUtilityCore.1.0.0.nupkg -key [yourKey] -s https://api.nuget.org/v3/index.json

5、包版本控制

特定版本号的格式为 Major.Minor.Patch[-Suffix] ,其中的组件具有以下含义:

  • Major:重大更改

  • Minor:新增功能,但可向后兼容

  • Patch:仅可向后兼容的 bug 修复

  • -Suffix(可选):连字符后跟字符串,表示预发布版本

-Suffix-包开发人员通常遵循识别的命名约定:

  • -alpha:Alpha 版本,通常用于在制品和试验品。

  • -beta:Beta 版本,通常指可用于下一计划版本的功能完整的版本,但可能包含已知 bug。

  • -rc:候选发布,通常可能为最终(稳定)版本,除非出现重大 bug。

6、参考

NuGet 及其功能介绍 | Microsoft Learn

NuGet.org 上的包自述文件 | Microsoft Learn

标签:nuget,自己,Nuget,dotnet,发布,密钥,str,EasyUtilityCore,org
From: https://www.cnblogs.com/wzyandi/p/17390106.html

相关文章

  • 双语美文:告诉自己,没关系!
     It's okay to feel out of place.当你觉得自己不再状态,告诉自己,没关系It's okay not to be okay.当你觉得自己不太好,告诉自己,没关系It's okay to be moody at times.当你觉得自己有些情绪化,告诉自己,没关系It's okay to feel like a fool at tim......
  • "智慧生活,我行我创"项目发布
    如果同学们没有博客园的账号,暂时不能在帖子后面发布项目链接。为了解决这个问题,我为同学们设计了一个问卷星调查问卷。请各小组完成项目设计后,填写问卷进行项目发布。https://www.wjx.cn/vm/O75QY0M.aspx#......
  • Layui 2.8.0 正式发布,官网全新文档站朴实归来
    前言两年前Layui官网宣布了下线声明,说实话当时内心确实感慨万千毕竟这个免费为我们后端程序员提供的一个前端快熟开发框架的官网就这样下线了确实十分的惋惜,但是庆幸的是官网的下线,只是单纯一个网站自身生命周期的结束,它并不意味着Layui这样一个开源项目的停更,Layui仍然......
  • 大语言模型进化树重磅发布,感慨技术方向选择的残酷,文末有彩蛋
    文/高扬 今天说点有深度的内容。五一假期,学习了一篇论文《HarnessingthePowerofLLMsinPractice:ASurveyonChatGPTandBeyond》。    这篇论文来自Amazon以及TexasA&MUniversity研究团队,他们通过追踪近年来语言模型的发展,构建了一个现代大语言模型......
  • Yolov5 根据自己的需要更改 预测框box和蒙版mask的颜色
    1、首先找到项目中utils/plots.py文件,打开该代码将原来的Colors类注释掉(或删掉),改成如下Colors类classColors:def__init__(self):self.red=(255,0,0)#深红色self.green=(0,255,0)#绿色def__call__(self,i,bgr=False):......
  • 自己动手实现Lua(三)lua栈
     Lua栈是宿主语言(对于官方Lua来说是C语言,对于本书来说是Go语言)和Lua语言进行沟通的桥梁。Lua的数据类型和值在lua代码里,变量是不携带类型信息的,变量的值才携带类型信息。换句话说,任何一个lua变量都可以被赋予任意类型的值。 在语言层面,Lua一共支持8种数据类型,分别是nil、布......
  • 每日总结5-10日(web发布成网址)
    步骤:一、建一个简单的javaweb项目1.建立一个项目2.创建一个主页3.插入内容和图片二、百度云1.进入官网https://cloud.baidu.com/2.注册/登入帐号3.实名认证4.因为发布到网上是需要一点费用的,......
  • GeoServer发布图层栅格格式设置样式
    最近工作中使用到了geoserver发布tif图,发布图层后需要给图层设置样式。发布图层就不在这里说了,可以参考其他博客,主要记录一下编写图层样式。一、介绍1、图层类型在geoserver中图层类型分为以下几类:我们可以在管理界面中查看我们发布的图层类型,后面写样式时需要根据我......
  • 倒计时 1 天:Tapdata LDP V3 发布会预告,看实时数据集成平台如何赋能企业 AI 落地
    更多LDP+AI场景细节,敬请期待5月10日(今天)的Tapdata发布会。最近几个月,AI领域可谓经历了近十年以来最为魔幻且不可思议的时刻。自ChatGPT发布以来,无论是底层大模型、训练框架、应用框架还是GPT插件等等各种新构想和产品层出不穷,为各行各业带来了深刻的变革和前所未......
  • VS修改NuGet包默认存放位置
    1、问题描述默认情况下,NuGet下载的包存放在系统盘(C盘中,一般在路径C:\Users\用户.nuget\packages下),这样一来,时间长了下载的包越多,C盘占用的控件也就越多。那么有没有办法将默认的下载位置修改掉呢?答案肯定是可以的。2、修改默认存放位置的目的目的很简单,当然是给C盘留出更多......