NuGet 1.5! 企業"私服"不是夢
先前曾介紹過自行架設NuGet Server的方法,而我一直覺得讓NuGet Server在企業內部作為開發團隊的程式庫/元件集散中心是很棒的點子,只要幾個點選動作就可將程式庫融合到現有專案中,極為方便,尤其自動版本更新的功能,更可解決程式庫開發人員在改過Bug或推出新版時,連該通知誰都不知道的困擾。
不過,架設自己的NuGet Server雖然簡單,我卻發現它在企業內部應用上的大罩門--NuGet在連線NuGet Server時不支援網站登入身分認證! 換句話說,NuGet Server必須開放匿名存取才能運作。擺放開發團隊程式庫的倉庫規定大門不能鎖,任何阿貓阿狗都可以晃進去拿個元件出把玩? 這顯然不符合企業應用的規範,因此依當時文章的結論,若要做到存取設限,還是應回歸網路分享資料夾的做法,但我深信支援網站登入並非技術障礙,只是時間早晚問題... 經過三個多月的時間,NuGet由1.3版推進到1.5版,開始支援網站認證囉!
有圖有真相。重新用1.5版的NuGet.Server程式包做一個NuGet Server網站放在另一主機IIS上,並取消匿名存取,接著在Visual Studio中新增一筆NuGet程式包來源設定指向該URL:
接下來,在專案叫出NuGet管理介面。(註: NuGet從1.4版起,將選單中"Add Library Package Reference…"更名為"Manage NuGet Packages…”,你甚至可在CodePlex上找到關於此一修改的討論 :P,這就是Open Source Project有趣的運作模式!)
從NuGet的管理介面,選取剛才新增的"企業內部NuGet Server"作為來源,因IIS設定不允許匿名存取,於是,輸入帳號/密碼的網站登入對話框出現囉!!
從此,我們便可以透過AD及IIS/Windows權限設定管控只有特定開發人員才能存取,使用NuGet Server儲放開發團隊共用程式庫元件的構想,又更具體可行了。