发布nuget包的正确姿势---cicd自动打包发布
最轻便的发布nuget包方式,方便cicd自动打包发布nuget包
首先新建项目
项目名随便取,这里就叫它GuiH.ClassLibrary
默认即可,需要改目标版本时,等创建好再改
项目创建好了
随便写个接口方法
namespace GuiH.ClassLibrary
{public class Class1{public static void Test(){Console.WriteLine("Hello Nuget!!!");}}
}
接下来修改工程文件,默认情况是这样的
我们添加下面一些配置
<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
命令行中也提示了 已成功创建包“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
详细发布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 毫秒
已推送包。
搜索发布的包(一般会短暂延迟几分钟才能搜到),在项目中使用(应该创建一个控制台测试,知道就好~)
多种目标平台支持
例如兼容framwork4.6.1
,修改工程文件如下,注意单词TargetFrameworks
的单复数
// 修改前
<TargetFramework>net6.0</TargetFramework>
// 修改后
<TargetFrameworks>net6.0;net461</TargetFrameworks>
或只支持net461
<TargetFrameworks>net461</TargetFrameworks>
CICD
cicd脚本中核心的两条命令就是上述两个,运行环境安装相应的sdk(.net5/.net6)即可。
关于如何多平台兼容的详细内容,下篇文章介绍。
发布nuget包的正确姿势---cicd自动打包发布相关推荐
- 常用jar包_发布Maven包的正确姿势
本文介绍如何把自己写的Maven包发布到公开仓库/中央仓库/私有仓库. 当我们使用commons-logging这些第三方开源库的时候,我们实际上是通过Maven自动下载它的jar包,并根据其pom. ...
- 使用Azure Pipelines从GitHub发布NuGet包
[本文目录] ps: 阅读本文大概需要20分钟 欢迎大家点击上方公众号链接关注我,了解新西兰码农生活 什么是 YAML? name/value 名称/值 collections 集合 multiple ...
- Nuget 多平台多目标快速自动打包
构建现代的 .Net 应用离不开 Nuget 的支持,而快速打包 Nuget 成了提高生产率的有效方法. 1. 前置条件 为了实现 Nuget 的快速打包,我们需要先解决一些前置依赖,无论是 .Net ...
- Mac环境下Android一键自动打包发布到蒲公英平台
由于项目提测需要编译出apk然后发布到蒲公英平台供测试人员下载,在之前是需要手动编译出apk文件然后打开蒲公英网站再手动上传发布到平台,这样如果要上传几个不同的版本和渠道包就比较麻烦,于是,一个能一键 ...
- 自动打包linux,Linux环境下Springboot自动打包发布功能
实现核心功能:完成Linux环境下Springboot自动打包发布功能 详细功能: 自动更新Svn最新代码 删除原有打包文件 自动打包 将打包之后的项目文件复制到其他服务器 关闭本地项目进程 重新启动 ...
- pipelines php,Azure DevOps 2020(五)使用 Pipelines 自动化发布 NUGET 包
相关资源下载 Azure DevOps 2020(一)初识微软 Azure DevOps(TFS) https://www.itsvse.com/thread-9239-1-1.html Azure ...
- Android Studio 引用系统 jar 包的正确姿势
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 Android Studio 如何引用 jar 包,相信大家都会操作的,现在问题来了,对于系统里的 jar,比如 fra ...
- 【Flutter】从安卓与iOS包体优化到一键自动打包脚本的一条龙服务
系统信息 System version: MacOS 12 Flutter version: 1.22.5 Dart version: 2.10.4 Android Studio version: 4 ...
- java release_使用release自动打包发布正式版详细教程
release正常打包发布流程按照如下几个阶段: Check that there are no uncommitted changes in the sources Check that there ...
最新文章
- 利用Use Case为系统行为建模(1)
- 过节的快乐,在于Free | 手把手带你学Django
- 5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」
- Docker for Linux 安装
- MySQL存储过程总结(二)
- element的滚动去掉横向_textarea去掉滚动条 textarea横向或纵向滚动条的去掉方法
- html5链接mvc,LinkExtensions.ActionLink 方法 (System.Web.Mvc.Html) | Microsoft Docs
- MFC开发IM-第六篇、MFC 文本框 用法
- cvpr 注意力机制_视频人员重识别:关系引导空间注意力 + 时间特征提取模型
- 山东大学计算机学院交叉,Xueying Qin
- 操作系统内存管理-原理
- idea创建Maven项目后启动报404
- Qt教程,Qt6.3,Qt6.2,Qt6,Q,v6.3.1入门,Qt编程入门
- 电脑装机必备软件清单
- 当你迷茫的时候,来看看这篇让你变好的文章
- 《尚书》全文、注释及译文(2)
- Nuvoton_N76E003使用教程
- (阅读笔记)脑中线偏移测量及其自动化技术与算法综述
- 第三方软件MOOS-IvP扩展
- 云服务器一直显示关机中,云服务器一直处于关机状态
热门文章
- Gartner认为安全性将取代成本和敏捷性成为政府部门采用云服务的首要原因
- 《Outlook时间整理术》一创建和使用自己的文件夹结构
- 你所不知道的setTimeout
- Fiddler (五) Mac下使用Fiddler
- 分析纯文本外链在SEO优化方面的作用
- java 接口编程_JAVA面向接口编程
- jenkins没安装git报错
- C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质...
- html标签缺省(自带)样式大全
- C#网络编程(订立协议和发送文件) - Part.4