开发现代化的.NetCore控制台程序:(3)将nuget包发布到GitHubPackages
发布Nuget包到GitHub Packages?不过是配置token和nuget.config的重复劳动。手动关联包与仓库?GitHub的设计真够奇葩的。搞定,但谁有空折腾这些。
目录6 个章节
前言
上一篇文章已经把项目模板的nuget包发布到了 nuget 的官方源了,其实还可以发布到其他源,比如 GitHub ,本文记录一下发布到 GitHub Packages 的过程。
注意:本文建立在本系列第二篇文章的基础上,为了更好理解操作过程,请先熟悉本项目的代码结构
创建 GitHub token
访问 https://github.com/settings/tokens 页面
生成一个 token (classic)
记得勾选跟 packages 有关的权限
在项目中添加 nuget source 配置
在 src/Templates 目录中新建 nuget.config 文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="github" value="https://nuget.pkg.github.com/NAMESPACE/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="USERNAME" />
<add key="ClearTextPassword" value="TOKEN" />
</github>
</packageSourceCredentials>
</configuration>
以上只是 GitHub 提供的配置模板,有几个需要修改的地方
- 将
USERNAME替换为 GitHub 上的个人帐户的名称。 - 将
TOKEN替换为 personal access token (classic)。 - 将
NAMESPACE替换为作为包限定范围的个人帐户或组织的名称。
发布包
执行 dotnet pack 生成 nuget 包
然后执行以下命令将生成的 nuget 包发布到 GitHub Packages
dotnet nuget push ".\bin\Release\FluentConsole.Templates.1.1.0.nupkg" --api-key TOKEN --source github
TOKEN是前面申请的
一切正常的话,可以看到以下输出
正在将 FluentConsole.Templates.1.1.0.nupkg 推送到 'https://nuget.pkg.github.com/Deali-Axy'...
PUT https://nuget.pkg.github.com/Deali-Axy/
OK https://nuget.pkg.github.com/Deali-Axy/ 1129 毫秒
已推送包。
这时候就搞定了,访问 https://github.com/Deali-Axy?tab=packages 可以看到已发布的 packages
将发布的包与代码仓库进行关联
因为项目地址是 https://github.com/Deali-Axy/fluent-dotnet-console
而包名是 FluentConsole.Templates
这俩不一致,所以不会自动关联,我们需要进行手动关联
进入 package 详情页面:https://github.com/users/Deali-Axy/packages/nuget/package/FluentConsole.Templates
点击下方的 Connect Repository 按钮,选择 fluent-dotnet-console 项目即可。
绑定之后在 package 的主页可以看到 repository 的 README
在 repository 的右下角也可以看到这个 package
PS: GitHub 越来越好用了
参考资料
_EOF_
开发现代化的.NetCore控制台程序:(3)将nuget包发布到GitHubPackages
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
使用C#和MemoryCache组件实现轮流调用APIKey以提高并发能力
本文介绍了如何利用C#语言中的MemoryCache组件,结合并发编程技巧,实现轮流调用多个API Key以提高系统的并发能力。通过示例代码和详细说明,读者将了解如何有效地管理API Key的调用次数限制,并优化系统性能。
2024-03-09 · C# · 约 1 分钟
System.Text.Json使用中的几个常见问题
前言 以前.NetCore是不内置JSON库的,所以大家都用Newtonsoft的JSON库,而且也确实挺好用的,不过既然官方出了标准库,那更方便更值得我们多用用,至少不用每次都nuget安装Newtonsoft.Json库了。 不过日常开发使用中会有一些问题,本文记录一下解决方法,欢迎交流~ ~~(文章末尾包含小彩蛋)~~ 字符编码问题 默认的 System.Text.Json 序列化的时候会把
2022-05-27 · C# · 约 1 分钟
SharpIco:用纯C#打造零依赖的.ico图标生成器,支持.NET9与AOT编译
SharpIco 是一款纯 C# 实现的跨平台图标生成工具,支持 AOT 编译,无需外部依赖。它能将 PNG 图片分解为多尺寸(16x16至512x512)合成 ICO 图标,并支持图标结构分析。工具提供命令行界面,可通过 dotnet tool 一键安装,并已发布至 NuGet 和 Scoop。项目旨在简化图标生成与验证,追求轻量、纯粹、易集成的使用体验。
2025-05-26 · C# · 约 1 分钟
C#实现解析Markdown文档并处理图片链接
前言 又是好久没写博客了 其实也不是没写,是最近在「做一个博客」,从2月21日开始,大概一个多星期的时间,疯狂刷进度,边写代码边写了一整系列的博客开发笔记,目前为止已经写了16篇了,然后上3月之后工作有点忙~~加上有点沉迷原神~~,然后进度就暂时慢下来了 事实证明做什么事情一旦停下来就会产生惰性,于是停了这么久,我终于下定决心继续更新! 这次开发的博客用的是C#语言,搭配.netcore技术栈;前
2022-03-19 · C# · 约 1 分钟
讨论
共 0 条加载评论中…