說真的,管理自己或公司專案上寫的通用元件或javascript檔案是很麻煩的一件事,元件的安裝也是件麻煩事,而更新又是一個更麻煩的事,前陣子看到黑大的架設私房NuGet Server,感覺就像看到銀子彈一樣,最新就在公司架了起來,將元件都上傳到私人NuGet Server,三件麻煩事都解決了。
說真的,管理自己或公司專案上寫的通用元件或javascript檔案是很麻煩的一件事,元件的安裝也是件麻煩事,而更新又是一個更麻煩的事,前陣子看到黑大的架設私房NuGet Server,感覺就像看到銀子彈一樣,最新就在公司架了起來,將元件都上傳到私人NuGet Server,三件麻煩事都解決了。
安裝NuGet Server
- NuGet Server必需透過NuGet下載,首先打開Visual Studio 2010。
-
建立空白網站應用程式專案。
-
安裝NuGet.Server,這一個版本跟官方的完全不同,是官方的非常精簡版,只有上架、下載、搜尋等等功能而以。
-
修改Web.Config
<appSettings> <!-- Set the value here to allow people to push/delete packages from the server. NOTE: This is a shared key (password) for all users. --> <add key="apiKey" value="B1EDB7E9-3C9D-4EFA-A5B7-778854809C35" /> <!-- Change the path to the packages folder. Default is ~/Packages. This can be a virtual or phsyical path. --> <add key="packagesPath" value="" /> </appSettings>
設定apiKey,apiKey的值一定要為GUID,可以使用Visual Studio>Tools>Create GUID工具產生,NuGet.Server的特性是所有人都可以下載nupkg檔案,但只有apiKey的人才能上傳nupkg檔,這一點與官方的操作模式相同,如果想要限制下載,可參考黑大的NuGet 1.5! 企業"私服"不是夢。
- 佈署到IIS上就完成了。
設定Package Sources
-
Package Sources選項設定可以從下列三個地方開啟:
- Tools > Library Package Manager > Package Manager Settings > Package Sources
- Tools > Options > Package Manager > Package Sources
- 於方案總管中在專案上按右鍵 > NuGet Package Manager > 左下角Settings按鈕 > Package Sources
-
輸入Package Source後新增
註:設定值是放在%USERPROFILE%\AppData\Roaming\NuGet\NuGet.Config,有考慮寫個批次檔或PowerShell去修改這個檔案,讓公司同事可以一鍵設定,但還沒寫。
- 之後就可以在NuGet Package Manager中看到自己上傳的元件。
備份與簡易管理
剛有說過NuGet.Server是非常精簡平台,連資料庫都沒有,完全以資料夾的方式管理,預設是放在~\Packages資料夾下,放一個nupkg就是新增,拿掉一個nupkg就是刪除,備份或要搬家只要複制資料夾下的所有nupkg就可以了。