Nuget快捷實踐

Nuget快捷實踐

簡介

本文主要包含三個部分,即建立nuget包、上傳nuget包和刪除nuget包。旨在引導快速使用nuget打包和使用,並實現對於nuget的簡單管理。git

本文使用的nuget服務是基於自行搭建的nuget server v3.0.0.0。具體搭建方法能夠參考nuget官方的指導教程github

另外文章中還涉及到兩個程序:服務器

  • Nuget Package Explorer:v4.1.38
  • nuget.exe:v4.5.1.4879

本文閱讀時間大約爲十分鐘。工具

建立nuget包

對於nuget的打包方式的權威指南固然是nuget官方的指導文檔。這份文檔優勢是對於nuget包的結構講解的很清楚,缺點是不太符合本文的快速實踐的意圖。針對這個狀況也有解決辦法,萬能的網友們開發了Nuget Package Explorer,目前該項目託管在Github上,安裝了Win10系統的能夠直接到微軟應用商店下載網站

打開Nuget Package Explorer後選擇新建package,在新建界面中填寫必要信息。包括包的Id,版本號,做者,發佈說明等。命令行

以上圖爲例,在新建nuget包時重點填寫以下信息:3d

  • Id:包的惟一標識,本文以Company.Application.Model.Lib爲例
  • Version:當前發佈的類庫版本號,本文以1.0.0爲例
  • Title:類庫名稱
  • Authors:做者
  • Owners:全部者
  • Description:類庫描述
  • Release Notes:當前版本的發佈說明

若是須要添加dll文件,則在右側的Package Contents空白區域右鍵,在菜單中選擇Add Lib Folder,並在新出現的lib上右鍵,在菜單中選擇「Add Existing File...」。操做界面參考下圖。code

建立有依賴的nuget包

若是編譯類庫時若是有的dll是別的nuget包的,最好是將被依賴的nuget包添加到當前nuget包的依賴項中。不然用戶同時下載兩個類庫時,可能出現相同的dll文件被覆蓋的狀況,以致於難於控制dll的版本,並且容易出現編譯問題。server

那麼如何添加依賴項呢?參考下圖的步驟:blog

在填寫類庫信息的Package Metadata頁最下方有個按鈕,點擊後彈出相關的編輯頁面。下圖以標註的形式說明操做順序:

  1. 點擊Edit Dependencies按鈕彈出依賴項編輯頁面
  2. 點擊Groups旁邊的加號按鈕,Tip是Add a new group,不要編輯Target Framework編輯框
  3. 點擊依賴項編輯頁面下方的小手圖標的按鈕,Tip是Select dependency from nuget feed
  4. 在彈出的Select package頁面選擇相關的依賴項並雙擊,完成選擇
  5. 使用本身搭建的nuget站點時,Select package頁面的Package Source多是http://域名:端口/nuget/

上傳nuget包

上傳nuget包的方式很簡單,在Nuget Package Explorer的File->Publish菜單,就能夠打開nuget上傳頁面。該頁面須要填寫兩個內容:

  • Publish Url:nuget服務器的發佈地址,能夠在nuget server首頁查看到
  • Publish key or PAT:發佈時驗證合法性的密鑰,能夠跟nuget server的管理員詢問獲得

刪除nuget包

通過上面的幾個步驟以後,nuget包就已經完成打包和發佈工做了,而且能夠提供給其餘同事使用。可是若是不當心上傳了錯誤的nuget包,或者在發佈後一段時間發現有的nuget包版本存在嚴重問題,不能提供給其餘人使用,並且想要刪掉該怎麼辦呢?

對此Nuget Package Explorer表示無能爲力,要完成這個工做能夠藉助nuget官方提供的nuget.exe工具來完成這個事情。

nuget.exe支持delete命令,詳細文檔能夠參考此處

從官方網站下載nuget.exe在命令行中直接執行nuget.exe後(不含參數),會列出nuget程序支持的全部命令:

輸入nuget help delete,彈出以下提示:

以本文中上傳的nuget包Company.Application.Model.Lib v1.0.0爲例,刪除命令是:

nuget delete Company.Application.Model.Lib 1.0.0  -ApiKey xxxx -Source http://ip:port/nuget

執行命令後會彈出提示,提示是否真的須要刪除,直接輸入y並回車就ok了。

總結

相對於傳統的dll管理方式,使用nuget的方式能夠極大的提升方便性並有效的對於依賴項進行版本化的管理。解決方案編譯時還能自動下載nuget包的相關內容,有條件的狀況下仍是儘可能使用nuget進行公共文件的管理。

參考資料

相關文章
相關標籤/搜索