2017-09-14

將 NuGet Package 發行至 ProGet

之前 自建 NuGet Server 曾經介紹過使用 NuGet.Server 套件自建 NuGet server 來儲存 NuGet package,不過使用 NuGet.Server 套件在整個介面及管理功能上都過於簡陋,不適合當做正式服務,因此最後選擇 ProGet 這個產品來當做 NuGet server,過程中遭遇到問題,特別紀錄一下其中的眉眉角角


安裝 ProGet

  1. 下載 ProGet

    ProGet 有免費版跟付費版本差別,但安裝檔是相同的,實際安裝時才需選擇

    下載位置 :Download ProGet

  2. 安裝 ProGet

    安裝上沒有什麼特別之處,只要依實際情況設定即可

    • 授權宣告

      1agreement

    • 選擇版本

      2edition

    • 註冊

      3regit

    • 安裝路徑

      4installpath

    • 資料庫

      5db

    • Host 方式

      6host

    • 執行身份

      7account

    • 安裝

      8sumary

設定 ProGet

  1. 登入 ProGet

    預設帳號密碼:Admin/Admin

    9login

  2. 建立 Feed

    • Create New Feed

      10newfeed

    • Create Feed

      選擇 Feed Type 及設定 Feed name

      11createfeed

  3. 其他設定

    依實際環境調整

    12feedproperty

發行 Package

  1. Packages --> Add Package

    14addpackage

  2. 選擇發行方式

    15publishtype

使用 NuGet api 發行 Package 的安全性設定

這是本篇文章的重點,特別拉出來另外說明,可參照官方說明 - API Keys in ProGet

  • NuGet api 用法

    16nugetapi

  1. Feed 未設定 NuGet API Key,使用帳密上傳

    這是 ProGet 的預設做法,但跟其他 NuGet Server 做法不同

    • 使用 nuget api
      • 語法

        NuGet.exe push {package} -ApiKey {Account}:{Password} -Source http://{ProGet_Server}/nuget/{Feed_Name}/

      • 範例

        17nugetapipush

    • 使用 NuGet Package Explorer

      18npepublished

  2. Feed 設定 NuGet API Key,需允許匿名上傳

    未設定會出現 403 (Forbidden) 錯誤

    22nugetapi403

    23npe403

    • 設定 --> Manage Users & Tasks

      19manageuser

    • Tasks --> Add Permission

      20addpermission

    • Anonymous 加至 Principals,並把 Publish Packages 加至 Tasks

      21addprivilige

    • 成功上傳

      24nugetapiok

      25npeok

心得

ProGet 在使用流程還有不小的改善空間,也缺乏系統化的文件來讓第一次使用的人快速上手,以我為例,明明我已經有其他 NuGet server 的使用經驗,但在使用 ProGet 卻佔不到便宜,在權限問題上卡了好久

說明文件及畫面功能的文字也對不起來,明明是個簡單設定卻一直找不到,畫面與文件上的文字不一致造成不少誤導

參考資訊

  1. API Keys in ProGet

4 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 請問一下,免費版本就可以符合需求了嗎 ?

    回覆刪除
    回覆
    1. 以敝公司目前需求:需要 NuGet、NPM、Maven、Docker registry,免費版都有提供,算滿足最基本要求,但免費版本沒有 HA 及多台 server node 是要衡量的重點,可能會在新年度預算中編列採用付費版本

      刪除