###### tags: `Package` `Nuget` # Net類別庫與模板建置紀錄:創建與安裝-使用Gitlab自建Nuget Package 一般使用DotNet Solution的公司,多少都會希望有自己Nuget Server主機可自行規劃與存取自己的類別庫。查了一下Nuget類別庫的[Solution](https://docs.microsoft.com/zh-cn/nuget/hosting-packages/overview),其實蠻多方法可以達到這件事情。剛好目前公司使用的是Gitlab,於是就選了Gitlab Package來建置Nuget Repo<font color="#f00">(注意:Gitlab Server Version查了一下要13版以上才有Package功能)。</font> 以Gitlag使用Nuget Package Repo,基本上有兩種狀況,一個是Project Level,另一個是Group Lvel。官方解釋如下 - Project-level: Use when you have few NuGet packages and they are not in the same GitLab group. - Group-level: Use when you have many NuGet packages in different projects within the same GitLab group. 簡單來說,如果你的Nuget Repo希望綁Group使用,就使用Group Level。在公司團隊規劃上會較容易統一跟整理,當進入到Group點選Package就可以看到此Group的套件庫。如果使用Project Level,則須開一個Project Repo。一般公司類別庫分類在沒有很多的情況下,其實也可以考慮直接使用Project Level。 --- ![](https://i.imgur.com/7Cb2w1S.png) --- 但不管使用哪種類別都需要Token Key,若要使用Group Level則建議使用Group Token Key。但因為Group Token免費板目前沒有這個功能。所以下面的介紹會以Project Level為主。而Token Key就先以自己產生的Token Key為主。 ## Step1:產生Token Key 在Nuget加入Source來源時,都會需要一組Token Key做註冊。而之後這組Token在使用Nuget Source Push等操作時都需要付上此API Key。所以第一步我們需要先產生一組Toke Key。 - 1. 到Gitlab右上角頭項 - 2. 點選Edit Profile - 3. 接著到左邊Menu點選Access Token 接著照下術SOP操作 ![](https://i.imgur.com/aamJf4r.png) 操作完後就可以得到一串Token Key。<font color="#f00">切記要保存下來,他只會在這邊顯示一次。</font> ![](https://i.imgur.com/x2F0Fxj.png) ## Step2: Create Project Repository Token建置完後接著需要開一個Repository。來當Nuget存取庫使用。新增上沒什麼需特別注意。基本上我的習慣會建置一個整個是空的的Projet Repo。此時點選左項目Menu,Package項目會是空的,代表目前還未上傳任何Package。 ![](https://i.imgur.com/Ri9o7HI.png) ## Step3: 新增NuGet的來源(Nuget Add Resource) 當Token與Repo建置好後接著透過Command Line,在本地端將Gitlab Nuget Project Repo加入本地端Nuget Source來源設置。這邊使用dotnet cli add source指令 ![](https://i.imgur.com/uErQnYT.png) ``` dotnet nuget add Source "https://gitlab.com/api/v4/projects/:projectID/packages/nuget/index.json" --name yourSourceName --username xxxx --password tokenKey ``` 安裝完後可下 ``` dotnet nuget list source ``` 就可檢查是否有成功Gitlab Nuget Repo 加入到Source設定裡 ![](https://i.imgur.com/61akvHJ.png) ## Step4: 將nupkg Push至Gitlab Repository Package 接著將打包好的nupkg使用dotnet nuget push推到Gitlab Nuget Repository Source ``` dotnet nuget push xxxx.nupkg --source sourceName --api-key xxxxxx ``` 成功後即可在Gitlab看到所推的Package ![](https://i.imgur.com/YCQm9Uu.png) ## Step5: Install 上傳完之後就可透過Nuget UI安裝,設定方法如下 ![](https://i.imgur.com/jV1XoiX.png) 也可直接透過dotnet cli安裝,安裝建議指令會顯示在Package頁面中 ![](https://i.imgur.com/D9CxVty.png)