前言
Private Nuget Server。
Nuget Server 一般狀況介紹有兩種
- NuGet Gallery (Public)
- NuGet Server (Private)
操作須知
- 使用過Nuget
- Windows陣營
- 寫.Net Library
- 封裝
- 專案方法隔離
- 有效控管工具
操作想法
只要有新人來,第一件事就是跟她說怎樣抓專案,然後抓完後需要跟她特別交代,XXX專案要放哪,共用的dll在哪…等等。這很智障。會一直被白眼,巴拉巴拉你們還在用專案路徑做reference,相依性不會太高嗎? 是阿,這是實話,真的有點高。
被噹了好久,不過這也是會什麼公司程式碼一直沒人想竊取的原因!! 再強的高手沒有內部人員的導覽可建置不起來。不過高手寧願重新建置也不願拿Legency Code。回到原題,透過Nuget Package的方式我們可以下載別人做好的工具套件,相對可以使用自己建好的Library,封裝成Nuget Package,給大家用,但有些東西只有公司內部用,所以就會需要自建Private Server。
操作方法
-
VS 2017 開專案,建立一個空的專案,去安裝Nuget.Server。安裝好後執行F5。
-
由於我的Default是4.6.1,所以我的targetFramework是4.6.1,但安裝完套件會綁你自動建立4.6。你必須手動刪除他。
- 之後搭配忠成老師的BasicAuthHttpModule類別做驗證機制。帳密在程式碼內(user/password)。也可透過老師提供的語法新增修改。
- 新增:
nuget sources add -Name "privateServer" -Source "http://localhost/nuget" -UserName "abc1" -Password "123"
- 修改:
nuget sources update -Name "privateServer" -Source "http://localhost/nuget" -UserName "abc2" -Password "1234"
- 新增:
-
使用Nuget Package Exploer (NPE)工具去建置,可以使用choco安裝
`choco install nugetpackageexplorer`
- 透過NPE加入dependencies在加入自己的library的dll,要套用到你.net建置的版本folder
- 還可以使用unpkg檔案建立package的內容,icon等等。但有了NPE後對一般使用者來說比較直覺一點,這就看你自己了,這跟publish你可以使用Nuget.exe Publish一樣。都可以。
-
接著建立新的測試專案,去Nuget Manager加入新的Nuget Server位置
-
下載後即可使用。
實戰:遇到的一些問題
Q: 一直回傳回傳 500 錯誤?
A: 這篇,原來是folder的權限不足。
Q: publish 時候遇到406錯誤?
A: 這篇,sthkn commented on Dec 16, 2017說到只需要在Web.config 打開allowOverrideExistingPackageOnPush設定即可。
閒言閒語
- 要懂.Net
- 有想解決reference問題
- .Net Core之後都是採用Nuget方式,想提前熟悉
- 想節省新人培訓時間
來源