基於 BaGet 搭建 Nuget 伺服器

蘆薈柚子茶發表於2022-05-21

1 前言

1.1 BaGet 介紹

BaGet 是一個輕量級的,開源的,跨平臺的 Nuget 和 symbol 伺服器。

1.2 環境介紹

作業系統:CentOS 7

使用 Docker 安裝


2 安裝步驟

2.1 配置檔案

登入 Linux 伺服器以後,在 /root 目錄下,建立一個 baget.env 檔案:

touch baget.env

使用 vim 進入編輯:

vim baget.env

輸入下面內容,將 ApiKey 設定為自己的密碼:

# The following config is the API Key used to publish packages.
# You should change this to a secret value to secure your server.
ApiKey=NUGET-SERVER-API-KEY

Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database

更多的配置,可以檢視:BaGet's configuration

2.2 拉取 Docker 映象

docker pull loicsharma/baget

2.3 啟動 Baget

docker run --rm --name nuget-server -p 5555:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget" loicsharma/baget:latest

-p 5555:80 是把 docker 內的 80 埠對映到伺服器的 5555 埠。

啟動如果沒有報錯,則訪問 http://伺服器ip:5555,如 http://192.168.10.20:5555 即可成功訪問


3 上傳 Nuget 包

3.1 新建一個類庫

使用 vs2022 新建一個類庫,命名 MessageLib

namespace MessageLib;

public class MessageLib
{
    public string Version { get; } = "1.0";

    public string Get()
    {
        return "test message!!!";
    }
}

右鍵專案屬性,找到【包】一項,勾選 “在構建時生成 NuGet” 包。

並根據需要,指定包的一些屬性,如包ID、版本等資訊。

image

3.2 生成解決方案

vs2022 的輸出視窗輸出如下資訊:

已還原 D:\_code\testnetcore\Nuget\MessageLib\MessageLib\MessageLib.csproj (用時 3 ms)。
1>------ 已啟動全部重新生成: 專案: MessageLib, 配置: Debug Any CPU ------
1>MessageLib -> D:\_code\testnetcore\Nuget\MessageLib\MessageLib\bin\Debug\net6.0\MessageLib.dll
1>已成功建立包“D:\_code\testnetcore\Nuget\MessageLib\MessageLib\bin\Debug\MessageLib.1.0.0.nupkg”。
========== 全部重新生成: 成功 1 個,失敗 0 個,跳過 0 個 ==========

3.3 上傳 Nuget 包

Ctrl + ~ 開啟開發者 PowerShell,切換目錄到上一步生成的包的路徑:

cd D:\_code\testnetcore\Nuget\MessageLib\MessageLib\bin\Debug\

然後輸入 publish 命令:

注意將命令中的地址改成自己的伺服器地址,並且將 NUGET-SERVER-API-KEY 改成 baget.env 配置檔案中設定的 ApiKey,包名 MessageLib.1.0.0.nupkg 對應改成自己的包名

dotnet nuget push -s http://localhost:5555/v3/index.json -k NUGET-SERVER-API-KEY MessageLib.1.0.0.nupkg

在網頁中,可以看到上傳的包:

image


4 使用自建伺服器的 Nuget 包

4.1 修改 VS 配置

在:工具 -> 選項

新增一個新的包源,輸入名稱和源,點更新,確定

image

4.2 引入 Nuget 包

在 Nuget 包介面中,選擇程式包源為自己剛新增的自建伺服器,選擇對應的包安裝即可。

image

4.3 命令列引入 Nuget 包

待補充……


參考來源

BaGet

相關文章