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

前言

上一篇文章已经把项目模板的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 ".binReleaseFluentConsole.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 越来越好用了

参考资料

发表评论

评论已关闭。

相关文章