发布nuget包的正确姿势---cicd自动打包发布

最轻便的发布nuget包方式,方便cicd自动打包发布nuget包

首先新建项目

a2db1536f43d244603a4770cb9a5d393.png

项目名随便取,这里就叫它GuiH.ClassLibrary

fce94f9453309207e075d6f66d0246e5.png

默认即可,需要改目标版本时,等创建好再改

367423cdd4872410f03dbfbcf6436a3c.png

项目创建好了

d5ba8016138ff0e94c7cb4874a9390fe.png

随便写个接口方法

namespace GuiH.ClassLibrary
{
    public class Class1
    {
        public static void Test()
        {
            Console.WriteLine("Hello Nuget!!!");
        }
    }
}

接下来修改工程文件,默认情况是这样的

28ec9b8b2f2765ef4e4e86ad0bb337c6.png
我们添加下面一些配置

<Project Sdk="Microsoft.NET.Sdk">

	<PropertyGroup>
		<TargetFramework>net6.0</TargetFramework>
		<ImplicitUsings>enable</ImplicitUsings>
		<Nullable>enable</Nullable>

		<!--以下是我们自己添加的-->
		<!--版本号,重要性不必多说-->
		<Version>1.0.0</Version>
		<!--添加该配置,在编译时进行打包-->
		<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
		<!--添加该配置才会生成注释文件,默认无注释-->
		<GenerateDocumentationFile>true</GenerateDocumentationFile>
	</PropertyGroup>

</Project>

执行编译命令,根据上面的配置,编译后会自动进行打包

// 该命令在GuiH.ClassLibrary项目根目录下执行
dotnet build -c=Release

cafaf583c7210a9cf77d7edfff12dd63.png
命令行中也提示了 已成功创建包“E:\工作区\GuiH.ClassLibrary\GuiH.ClassLibrary\bin\Release\GuiH.ClassLibrary.1.0.0.nupkg”

GuiH.ClassLibrary.1.0.0.nupkg推送至nuget仓库,可以自己搭建,也可以是微软官方nuget仓库

在www.nuget.org注册一个账号,然后获取apikey

a643775c9c46c7d1a6ff2a9e770c672d.png
7b9d4bb41dc4208d584972491b69da8f.png

详细发布nuget命令参考:dotnet-nuget-push

// $apikey 替换为你的apikey
dotnet nuget push ./bin/Release/GuiH.ClassLibrary.1.0.0.nupkg -k $apikey -s https://api.nuget.org/v3/index.json --skip-duplicate

正在将 GuiH.ClassLibrary.1.0.0.nupkg 推送到 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/deprecateLicenseUrl.
  Created https://www.nuget.org/api/v2/package/ 1404 毫秒
已推送包。

搜索发布的包(一般会短暂延迟几分钟才能搜到),在项目中使用(应该创建一个控制台测试,知道就好~)

9001ff84c8d107d08f5ec645445e6713.png
754c3ceb07791a05475d0c3d42b6210c.png

多种目标平台支持

例如兼容framwork4.6.1,修改工程文件如下,注意单词TargetFrameworks的单复数

// 修改前
<TargetFramework>net6.0</TargetFramework>
// 修改后
<TargetFrameworks>net6.0;net461</TargetFrameworks>

或只支持net461

<TargetFrameworks>net461</TargetFrameworks>

CICD

cicd脚本中核心的两条命令就是上述两个,运行环境安装相应的sdk(.net5/.net6)即可。

关于如何多平台兼容的详细内容,下篇文章介绍。

fdf1e9a4374e2152a20aaca751796da2.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值