曦远 (DealiAxy)一份私人的文字刊物

StarBlog
返回文章列表折页手记阅读全文
C#

开发现代化的.NetCore控制台程序:(3)将nuget包发布到GitHubPackages

发布Nuget包到GitHub Packages?不过是配置token和nuget.config的重复劳动。手动关联包与仓库?GitHub的设计真够奇葩的。搞定,但谁有空折腾这些。

曦远 (DealiAxy)约 5 分钟
目录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#学习(一)委托的概念和使用

前言 C#学习系列是根据我以前的笔记整理出来复习,顺便发一下文章做个记录。 先引用一个介绍: C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。 根据使用其他

2021-12-18 · C# · 约 1 分钟

C#实现生成Markdown文档目录树

前言 之前我写了一篇关于C#处理Markdown文档的文章:C#解析Markdown文档,实现替换图片链接操作 算是第一次尝试使用C#处理Markdown文档,然后最近又把博客网站的前台改了一下,目前文章渲染使用Editor.md组件在前端渲染,但这个插件生成的目录树很丑,我魔改了一下换成bootstrap5-treeview组件,好看多了。详见这篇文章:魔改editormd组件,优化ToC渲染效

2022-10-26 · C# · 约 1 分钟

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…