前言
上一篇文章已經把專案模板的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 越來越好用了