Nuget工具的安裝和實際項目基本用法
Nuget 這個工具最先是在MIX11上開始讓我注意.不知道當時看MIX同學是否注意到一個小細節(jié).-就是所有MIX11 Code演示環(huán)節(jié)中MS開發(fā)人員都使用Nuget.本篇介紹一些Nuget安裝和一些在實際項目中基本用法.
首先 解釋一下Nuget Tool是什么?
NuGet 是一種 Visual Studio 擴展工具,它能夠簡化在 Visual Studio 項目中添加、更新和刪除庫(部署為程序包)的操作。 NuGet 程序包是打包成一個文件的文件集,擴展名是 . nupkg,使用開放打包約定 (OPC) 格式.
在沒有使用Nuget工具之前.如果我們要在一個普通.NET項目中添加一個庫的引用.最簡單的方式就是添加DLL引用的方式實現(xiàn)第三方代碼庫引用.通過下載解壓.添加引用操作.如果在發(fā)布時還需要為項目依賴項進行大量手工整理.是否發(fā)現(xiàn).在DLL引入到發(fā)布整個過程存在一個管理”真空“狀態(tài).如果要向其他開發(fā)者或組織共享我們代碼.是否意味更復雜的操作.著恰恰也是Nuget所做的.
安裝Nuget有兩種方式.方式一打開Visual Studio 2010,打開Tool->Extension Manager窗體.選擇Online Gallery,在搜索框中輸入NuGet看到:
點擊Download下載會自動安裝,另外一種方式打開http://www.nuget.org/直接下載安裝文件NuGet Manager. 點擊運行開始安裝:
選擇安裝工具 下一步:
安裝完成.如果在安裝過程出現(xiàn)錯誤貨沒有正確安裝會在安裝界面提示:
關于安裝出錯后通過查看Install Log 確定出錯的原因:
如果覺得麻煩.也可以不看.直接找到上圖的目錄刪除掉NuGet Package Manager文件夾,重新安裝Nuget Tool即可.安裝完成后可以創(chuàng)建一個Windows phone Application 打開Tool->Library Package Manager->Package Manager Console:
可以通過在控制臺Package Manager Console 輸出目錄管理庫 首先在在線的http://www.nuget.org/packages目錄下找到對應庫初始化路徑 類似找到Json.NET http://www.nuget.org/packages/Newtonsoft.Json初始化路徑為:
輸入:Install-Package Newtonsoft.Json
如果對應庫文件較大.則會在Visual Studio 右下角提示有下載進度.安裝完成后:
可以在當前項目目錄中看到已經成功添加到引用中:
可以引用管理手動添加庫文件.在解決方案的References引用可以看到:
多了一個Manage Nuget Packages打開管理窗體能夠實現(xiàn)已經安裝庫文件管理:
Nuget提供基于 Windows PowerShell 的控制臺窗口(稱作程序包管理器控制臺)以及一組 Windows PowerShell 命令與 NuGet 進行交互。 Windows PowerShell 是基于 .NET 的腳本語言和命令行 shell,非常適合組成命令集,并能夠處理對象.當然PowerShell提供強大支持可以Package Manager Console通過指令直接管理卸載庫 例如卸載已經引用Json.NET庫輸入:Unstall-Package Newtonsoft.Json卸載.如果想看到當前項目已經引用的Package在Console 直接通過指令的方式獲取 Get-Package:
看到當前項目中已經使用庫文件 以及版本其他信息.如果已經引用的組件存在新的版本 依然可以通過Update-Package批量更新已經引用的庫:
命令嘗試將每個程序包都更新到最新版本,如果任何程序包包含重大改變,這會是一項非常重大的操作。 在多數(shù)情況下,您僅希望將各程序包更新至最新的修補程序版本。 這叫“安全”更新,前提是具有較大內部版本號或修訂號(但具有相同的主版本號和次版本號)的程序包能夠向后兼容。 僅添加 Safe 標記以執(zhí)行安全更新:例:Update-Package –Safe
當然我們能夠現(xiàn)在操作都是基于在線Nuget官方數(shù)據(jù)源Package操作.當然我們可以PAckage數(shù)據(jù)源設置成本地 找到綠色按鈕Package Manager Settings:
打開并在一個指定本地目錄下添加一個本地Package數(shù)據(jù)源:
能在Console看到指定的數(shù)據(jù)源設置分類LocalPackages:
當然對于組織結構更大的公司和開發(fā)團隊.如果簡單的使用SVN和Git管理方式依然不容易控制不同庫版本和對外共享的控制.Nuget針對企業(yè)用戶提供可以在企業(yè)內部搭建一個Nuget Server的形式來統(tǒng)一管理內部開發(fā)團隊庫共享. 大大提高開發(fā)效率.