前言
Nuget 是開發.Net必備的套件管理工具,NuGet Gallery 是大家所熟知公開的套件管理儲存庫
但如果是私人或是公司內部自用不想讓他人下載的套件
則需要自行在地端建立Nuget Server 或是推到雲服務套件的儲存庫(ex: Azure Devops Artifact)。
雖然目前大部分服務都上到雲端了,地端服務已陸續減少,但因我沒實做過架設地端 Nuget Server,所以還是實作紀錄一下過程。
建立 Nuget Server
建立 .Net Framework 4.6 空白的應用程式專案
開啟套件管理主控台 安裝 NuGet.Server
Install-Package NuGet.Server -Version 3.4.1
設定 Nuget Server apiKey
若在公司內網 方便大家使用的話 requireApiKey 設成 false就好
但若在公開網域 則加上ApiKey可防止別人亂動你的Nuget Server
開啟 Web.config 修改設定
requireApiKey = 執行 push\delete packages 是否需要 ApiKey
apiKey = 密碼
<add key="requireApiKey" value="true" />
<add key="apiKey" value="test123" />
部署 Nuget Server 至遠端伺服器
我在GCP有台VM測試機,先拿這台當作測試
部屬到 IIS上 並查看服務是否正常 (port 設 80)
此時已可透過外網訪問
順便建立domain & DNS
若要用GCP cloud domain & dns 服務,過程可參考 w4560000 - GCP Cloud Domains 註冊網域 & GCP Cloud DNS建立對應IP
目前為止已在遠端VM上建了Nuget Server服務,
http://nuget.leozheng0512.com/
建立 測試類別庫 用以上傳 Nuget Server
建立一個 .Net framework 4.7.2的類別庫專案 用以測試
開啟 CMD 切至 leotest_ClassLibrary.csproj 所屬資料夾
先用Visual Studio編譯專案(Ctrl + Shift + B) 或是 CMD 下 MSBUILD
該路徑為 VS2019 Enterprise 的 MSBuild.exe路徑
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" leotest_ClassLibrary.csproj -t:rebuild /p:Configuration=Release
透過 Nuget.exe Push Package 至 Nuget Server
先下載安裝 Nuget 官網 - Nuget.exe
可加入Nuget.exe所屬資料夾 至 環境變數中 方便使用
setx /m PATH "D:\Nuget;%PATH%"
建立 Nuget 套件檔(.nupkg)
nuget pack leotest_ClassLibrary.csproj -p Configuration=Release -Version 1
以下示範兩種 Nuget.exe 推送套件方式
透過 apiKey 推送套件
每次推送都需要傳 apiKey
nuget push leotest_ClassLibrary.1.0.0.nupkg test123 -source http://nuget.leozheng0512.com/nuget
透過 nuget source 推送套件
設定一次本地的 nuget source之後推送套件就不用再傳 apkKey
nuget sources add -name leozheng0512 -source http://nuget.leozheng0512.com/nuget/ nuget setapikey test123 -source leozheng0512 nuget push -source leozheng0512 leotest_ClassLibrary.1.0.0.nupkg
刪除 遠端 nuget server 套件
nuget delete leotest_ClassLibrary 1.0.0 test123 -source http://nuget.leozheng0512.com/nuget
刪除 本地的 nuget source
nuget sources Remove -Name leozheng0512
推送完套件後 設定Nuget套件來源來下載套件
開啟 Nuget 套件管理
點擊 套件來源 按鈕 > 新增套件來源
即可看到 剛剛上傳的類別庫
補充
可透過網址直接下載 .nupkg檔
不同版本的 Nuget Server 下載網址會不同
可查看 http://{NugetDomain}/nuget/Packages (套件資訊)
3.4.1版本的路徑是 http://{NugetDomain}/nuget/Packages(Id=‘{PackageID}’,Version=‘{PackageVersion}’)/Download
若是舊版2.11.2版本的路徑則是 http://{NugetDomain}/api/v2/package/{PackageID}/{PackageVersion}
參考資料
轉載請註明來源,若有任何錯誤或表達不清楚的地方,歡迎在下方評論區留言,也可以來信至 leozheng0621@gmail.com
如果文章對您有幫助,歡迎斗內(donate),請我喝杯咖啡