NuGet系列-建立自己的NuGet Server

說真的,管理自己或公司專案上寫的通用元件或javascript檔案是很麻煩的一件事,元件的安裝也是件麻煩事,而更新又是一個更麻煩的事,前陣子看到黑大的架設私房NuGet Server,感覺就像看到銀子彈一樣,最新就在公司架了起來,將元件都上傳到私人NuGet Server,三件麻煩事都解決了。

說真的,管理自己或公司專案上寫的通用元件或javascript檔案是很麻煩的一件事,元件的安裝也是件麻煩事,而更新又是一個更麻煩的事,前陣子看到黑大的架設私房NuGet Server,感覺就像看到銀子彈一樣,最新就在公司架了起來,將元件都上傳到私人NuGet Server,三件麻煩事都解決了。

 

安裝NuGet Server

  1. NuGet Server必需透過NuGet下載,首先打開Visual Studio 2010。
  2. 建立空白網站應用程式專案。
    image
  3. 安裝NuGet.Server,這一個版本跟官方的完全不同,是官方的非常精簡版,只有上架、下載、搜尋等等功能而以。
    image
  4. 修改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! 企業"私服"不是夢

  5. 佈署到IIS上就完成了。

 

設定Package Sources

  1. Package Sources選項設定可以從下列三個地方開啟:
    1. Tools > Library Package Manager > Package Manager Settings > Package Sources
    2. Tools > Options > Package Manager > Package Sources
    3. 於方案總管中在專案上按右鍵 > NuGet Package Manager > 左下角Settings按鈕 > Package Sources
  2. 輸入Package Source後新增
    image

    註:設定值是放在%USERPROFILE%\AppData\Roaming\NuGet\NuGet.Config,有考慮寫個批次檔或PowerShell去修改這個檔案,讓公司同事可以一鍵設定,但還沒寫。

     
  3. 之後就可以在NuGet Package Manager中看到自己上傳的元件。

 

 

備份與簡易管理

剛有說過NuGet.Server是非常精簡平台,連資料庫都沒有,完全以資料夾的方式管理,預設是放在~\Packages資料夾下,放一個nupkg就是新增,拿掉一個nupkg就是刪除,備份或要搬家只要複制資料夾下的所有nupkg就可以了。

 

 

參考文章

  1. 架設私房NuGet Server

  2. NuGet 1.5! 企業"私服"不是夢