關於NuGet園子裏已經有很多介紹及使用經驗,本文僅做爲本身研究學習NuGet一個記錄。html
初次認識NuGet是在去年把項目升級爲MVC3的時候,當時看到工具菜單多一項Library Package Manager,右鍵項目文件多了一項Manage Nuget Packages...,這是個神馬玩意兒,當時是一頭霧水,後臺查了些資料才知到NuGet是 Visual Studio的一個擴展,引用dudu的話來講就是管理程序的包包,能夠參考msdn上這篇文章使用 NuGet 管理項目庫以及我們博客園站長dudu寫的程序員,用NuGet管理好你的類庫,有些相似java中經常使用的maven java
爲何要使用NuGet程序員
簡單的說NuGet能夠是咱們的工做更方便,當咱們的項目裏要引用到的一些庫時候,好比JQuery、Newtonsoft.Json、log4net等,咱們須要從網上下載這些庫,而後依次拷貝到各個項目中,當有的類庫有更新時又不得再也不重複一遍非常繁瑣 ,這時就能夠考慮使用NuGet來幫咱們管理和更新這些類庫,並且更新類庫時會自動添加類庫的相關引用,方便至極。固然網上一些咱們經常使用的類庫更新頻率不是很高並且即使出了新版本咱們也不必老是保持最新,故這點對咱們的幫助比較有限,我的認爲NuGet最大的好處在於能夠搭建本身的類庫服務器,想一想一下吧,在一些較大些的公司裏面有不少的項目,而後其中有一些是整個組,甚至整個公司通用的類庫,當這些類庫有更新後咱們須要依次拷貝到咱們的項目,甚至於有時候咱們本身都搞不清楚各個項目裏的版本是否一致,有時偶爾一兩個項目忘了複製更新出現莫名其妙的錯誤,爲此頭疼不已,如今有了NuGet,世界今後而不一樣。web
安裝NuGet擴展服務器
要使用NuGet首先須要安裝它(在安裝了MVC3的系統上已自動安裝了NuGet)app
1. 點擊 工具-->擴展管理器(R)...-->右上角搜索框輸入NuGetmaven
2. 點擊 NuGetPackage Manager 項上面的下載按鈕開始下載NuGet工具
3. 下載完成後出現安裝頁面,點安裝開始安裝學習
4. 很快安裝完成,而後點擊關閉完成整個安裝網站
5. 安裝完後NuGet暫時不能用,須要從新啓動下VS才行,重啓後完畢後打開 擴展管理器(R)... 在已安裝的擴展裏能夠看到NuGet Package Manager已經安裝好了
使用NuGet下載須要的類庫
1. 打開NuGet管理界面
2. 出現以下界面,能夠在裏面找本身想要的類庫也能夠在右上角搜索裏面輸入關鍵字查找本身想要的類庫,找到合適本身的類庫後點install進行安裝
3. 這裏咱們選擇安裝Json.Net,點擊安裝好出現組件下載界面
4. 下載完成後會出現提示將類庫安裝到什麼項目,這裏咱們選擇安裝到TestConsole項目
5. 安裝完成後能夠看到已經安裝的Josn.Net顯示一個已安裝的小對勾
6. 打開項目引用能夠看到咱們剛選擇的類庫Newtonsoft.Json已經自動添加到項目引用中
使用命令行管理你的類庫
1. NuGet提供了命令行安裝方法,在菜單中選擇Package Manager Console,打開命令行控制檯
2. 出現NuGet控制檯界面,默認類庫源(Package source)爲官方站點,也能夠指向本身搭建的本地或內網站點,Default project表示默認將下載的類庫添加到那個項目的引用中
3. NuGet控制檯有幾個經常使用命令
Get-Package 獲取當前項目已經安裝的類庫
Install-Package 安裝指定類庫,命令格式以下:Install-Package 類庫ID,如Install-Package Newtonsoft.Json 這裏須要注意的是類庫的ID是惟一的,指向命令後會自動搜索指定類庫源裏指定ID類庫,若找到則自動下載並添加引用,找不到則會出現找不到類庫的提示
Uninstall-Package 卸載指定類庫,命令格式以下:Uninstall-Package 類庫ID,如Uninstall-Package Newtonsoft.Json
Update-Package 更新指定類庫,命令格式以下:Update-Package 類庫ID,如Update-Package Newtonsoft.Json
ps:剛開始不熟悉時可使用界面方式下載和更新類庫,有必定經驗後仍是建議使用控制檯添加、更新類庫這樣很方便,因爲使用控制檯須要知道類庫的準確ID,能夠到http://www.nuget.org/packages這裏去查找,把本身經常使用的ID記錄下方便之後使用
上文NuGet學習筆記(1) 初識NuGet及快速安裝使用說到NuGet相對於咱們最重要的功能是可以搭建本身的NuGet服務器,實現公司內部類庫的輕鬆共享更新。在安裝好NuGet擴展後,咱們已經可以經過NuGet輕鬆下載本身須要的類庫,下面來講一說如何將本身的項目類庫進行打包發佈
使用圖形界面打包本身的類庫
NuGet可使用NuGet.exe在命令行下進行類庫打包,也可使用圖形化界面進行打包,估計不少朋友都和我同樣對不熟悉的命令行有些感冒,因此在此僅講述下使用圖形化界面進行類庫打包
1. 首先下載 包包管理器 NuGetPackageExplorer,顧名思義,包包管理器能夠用來建立新的類庫包,也能夠瀏覽已經建立好的類庫包
2. 下載完成後,雙擊 NuGetPackageExplorer.application 進行安裝,安裝完成後會在桌面上生成一個NuGet Package Explorer 的快捷方式
3. 雙擊NuGet Package Explorer出現啓動界面,選擇Create a new package(Ctrl+N)建立一個新包
4. 選擇菜單 Edit > Edit Package Metadata (或者 CTRL + K) 編輯包包信息
這裏能夠編輯類庫包的信息和添加類庫、程序集的引用解釋下幾個比較重要的字段
Id:用於定位類庫包的惟一標示,如在命令行下執行 Install-Package MyPackage 這裏的MyPackage就是包包的Id值
Version:類庫的版本號,這裏建議和程序集的真實版本號保持一致,以避免發生混淆
Dependencies:此類庫依賴的程序集,根據實際狀況添加依賴類庫的Id和版本號,若無留空便可,這裏須要注意下填寫的依賴類庫須要在NuGet服務器上能找到,不然沒法完成自動引用添加
Framework assemblies:依賴的Framework 程序集,根據實際須要選擇便可,通常無需設置
除以上四項之外其餘屬性根據實際狀況修改便可,若本身用不修改也中,不過爲了使用方便仍是建議把類庫描述(Description)填寫下
5. 編輯好包包信息後接下來添加DLL到包包中
能夠選擇 右鍵-->Add Existinng File... 選擇dll添加,也能夠直接拖拽DLL到 Package contents 窗口,此例選擇拖拽方式
直接拖拽dll到窗口後,會出現提示:是否將 Winista.HtmlParser.dll放到lib 文件夾下,通常咱們選擇是
6. DLL添加完成後,快捷鍵Ctrl + K 修改包包信息Id爲Winista.HtmlParser,版本號爲1.8.0
7. 信息修改和dll都添加完畢後,選擇File --> Save(或Ctrl + S)將文件進行保存,默認文件名爲Id + 版本號.nupkg
8. 完成保存後如須要發佈到網上,選擇File--> Publish...(或Ctrl + P)
默認的發佈地址是官網,發佈 Key須要到官網去註冊一個帳號,而後就能夠獲得,這裏不在複述,若無需發佈直接關閉便可
ps:這裏沒有講述如何打包項目文件,通常狀況下咱們本身將項目文件編譯成DLL而後使用圖形化界面打包便可知足需求,若實際工做須要高度集成徹底自動化操做可自行去研究下官方文檔http://docs.nuget.org/
添加DLL默認會添加Lib文件夾,額外的菜單上還有不少.net文件夾,src等文件夾,這些文件夾只是對文件上的一個物理上的劃分而已,只是爲了幫助咱們作好文件分類,沒有其餘的用途,dll文件能夠隨便放置,不過爲了規範仍是建議按照一般習慣來放置。