社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

dotNET跨平台 • 6 月前 • 112 次点击  

1前言

上一篇文章已经把项目模板的nuget包发布到了 nuget 的官方源了,其实还可以发布到其他源,比如 GitHub ,本文记录一下发布到 GitHub Packages 的过程。

注意:本文建立在本系列第二篇文章的基础上,为了更好理解操作过程,请先熟悉本项目的代码结构

2创建 GitHub token

访问 https://github.com/settings/tokens 页面

生成一个 token (classic)

记得勾选跟 packages 有关的权限

3在项目中添加 nuget source 配置

src/Templates 目录中新建 nuget.config 文件



<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 替换为作为包限定范围的个人帐户或组织的名称。

4发布包

执行 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

5将发布的包与代码仓库进行关联

因为项目地址是 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 越来越好用了

6参考资料

  • https://docs.github.com/zh/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/164307
 
112 次点击