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

虚幻大学 xuhss 230℃ 0评论

Python微信订餐小程序课程视频

https://blog.csdn.net/m0_56069948/article/details/122285951

Python实战量化交易理财系统

https://blog.csdn.net/m0_56069948/article/details/122285941

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

首先新建项目

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

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

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

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

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

项目创建好了

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

随便写个接口方法

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

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

d6509bec58725e225a3de7e742ca2dee - 发布nuget包的正确姿势---cicd自动打包发布nuget包
我们添加下面一些配置

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

    <PropertyGroup>
        <TargetFramework>net6.0TargetFramework>
        <ImplicitUsings>enableImplicitUsings>
        <Nullable>enableNullable>

        <Version>1.0.0Version>

        <GeneratePackageOnBuild>trueGeneratePackageOnBuild>

        <GenerateDocumentationFile>trueGenerateDocumentationFile>
    PropertyGroup>

Project>

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

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

0c1947ff72c60e57e222839f692c455a - 发布nuget包的正确姿势---cicd自动打包发布nuget包
命令行中也提示了 已成功创建包“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

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

详细发布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 毫秒
已推送包。

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

4aa4e604c5474d284434661449714ae0 - 发布nuget包的正确姿势---cicd自动打包发布nuget包
9c6d0d763b7255bf864b2fdb8411f449 - 发布nuget包的正确姿势---cicd自动打包发布nuget包

多种目标平台支持

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

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

或只支持net461

<TargetFrameworks>net461TargetFrameworks>

CICD

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oraAWj60-1650170405784)(https://img2022.cnblogs.com/blog/960145/202204/960145-20220412154117172-1575691884.png)]

转载请注明:xuhss » 发布nuget包的正确姿势—cicd自动打包发布nuget包

喜欢 (0)

您必须 登录 才能发表评论!