###### 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。 ---  --- 但不管使用哪種類別都需要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操作  操作完後就可以得到一串Token Key。<font color="#f00">切記要保存下來,他只會在這邊顯示一次。</font>  ## Step2: Create Project Repository Token建置完後接著需要開一個Repository。來當Nuget存取庫使用。新增上沒什麼需特別注意。基本上我的習慣會建置一個整個是空的的Projet Repo。此時點選左項目Menu,Package項目會是空的,代表目前還未上傳任何Package。  ## Step3: 新增NuGet的來源(Nuget Add Resource) 當Token與Repo建置好後接著透過Command Line,在本地端將Gitlab Nuget Project Repo加入本地端Nuget Source來源設置。這邊使用dotnet cli add source指令  ``` 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設定裡  ## 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  ## Step5: Install 上傳完之後就可透過Nuget UI安裝,設定方法如下  也可直接透過dotnet cli安裝,安裝建議指令會顯示在Package頁面中 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up