軟體工程師的小事:到底要不要 Close

架設私有 Nuget Server

Nuget 是微軟提供給開發人員的套件管理工具,微軟也將很多官方套件放到官方的 Nuget Server。

微軟也提供文件說明架設 Nuget Server 的方法,下列為可能會需要自行架設 Nuget Server 的情境:

  • 自行撰寫且無法公開在網路上的套件(公司內部使用的套件或包含敏感內容的類別庫 ... etc)
  • 內部的資訊安全規定不允許沒有權限的開發人員直接連線到 Nuget Server,就可將有需要使用的 Nuget 套件上傳到內部 Nuget Server。
自行架設 Nuget Server 是微軟建議的共用類別庫解決方案

文章將介紹在 Windows Server 2016 的 IIS 伺服器架設 Nuget Server。

環境設定
Nuget 伺服器作業系統
Windows Server 2016 Standard
開發工具
Visual Studio 2017 Community
建立 Nuget Server 使用的 ASP.NET Web 應用程式

微軟官方文件已有很清楚的說明,這邊進行實作的紀錄,詳細的文件請檢視下方「參考資料」

在 Visual Studio 新增「ASP.NET Web 應用程式」專案,.NET Framework 版本需為 4.6 以上。

create aspnet web application

選擇「空白」應用程式。

select empty template

專案開啟後在「方案總管」點選右鍵開啟「管理 Nuget 套件」視窗。

right click project select manage nuget package

在「瀏覽」頁簽中尋找「Nuget.Server」套件並安裝。

官方文件中有提到若 .NET Framework 版本非 4.6 以上需安裝較舊版本
search nuget server package in browse tab

安裝過程中會確認一些項目

基本的「Nuget.Server」就已經安裝完成,可以部署到 IIS 伺服器上了。

Nuget Server 的 web.config 部分設定

apiKey:若要進行 Nuget 套件上傳時需要使用此金鑰才可上傳,設定為「txstudio」。

此設定會在上傳套件到此 Nuget Server 時使用
config apikey value

packagesPath:Nuget 套件檔案要儲存的路徑,設定為預設值「~/Packages」

config packages path value
發行 Nuget Server ASP.NET Web 應用程式

將應用程式發行到指定資料夾中

right click select publish publish application to folder published files
部屬應用程式到 IIS 伺服器

將發佈資料夾路徑下的應用程式檔案複製到 IIS 伺服器

aspnet application file in iis folder

安裝 IIS 伺服器角色時別忘記勾選 ASP.NET 4.6 應用程式支援。

aspnet support in iis feature

在此將設定繫結指定網址「nuget.txstudio.tw」稍後在用戶端網站透過強制修改 host 檔案的方式進行對應。

iis website binding configuration

瀏覽「nuget.txstudio.tw」顯示 Nuget.Server 版本資訊,網站已經正常運作。

nuget server default page

預設頁面有包含此 Nuget Server 在套件管理員設定的 URL 路徑與套件檔案會儲存在伺服器中的哪個實體位置。

host 檔案設定:

host configuration in server
參考資料

留言