什麼是NuGet? [NuGet][](讀作New Get)是用於微軟.NET開發平臺的軟體包管理器,是一個Visual Studio的擴展。在使用Visual Studio開發基於.NET Framework的應用時,NuGet能夠令你在項目中添加、移除和更新引用的工作變得更加快捷方便。 通過Nu ...
什麼是NuGet?
NuGet(讀作New Get)是用於微軟.NET開發平臺的軟體包管理器,是一個Visual Studio的擴展。在使用Visual Studio開發基於.NET Framework的應用時,NuGet能夠令你在項目中添加、移除和更新引用的工作變得更加快捷方便。
通過NuGet你可以很容易的訪問到其他開發者發佈的軟體包,你也可以創建、分享或者發佈自己的包到NuGet。微軟的EntityFramework、ASP.NET MVC等或者一些常用到的第三方軟體包:Json.NET、NUnit等都托管到NuGet上。
為什麼要用NuGet?
上面說道NuGet實際上就是一個軟體包的托管平臺。用過VS的人可能都知道一個叫做VisualStudioGallery的網站,通過這個網站你可以下載使用一些VS的擴展工具、項目模板或者一些常用的軟體包,VS中也提供了一個叫做“擴展和更新”的工具能夠讓你輕鬆的訪問到VisualStudioGallery中的內容。
那麼NuGet和VisualStudioGallery有什麼區別?我們為什麼要用NuGet?
NuGet和VisualStudioGallery的區別
首先NuGet是VS的一個擴展,而VisualStudioGallery是VS擴展的一個托管平臺,所以NuGet是包含在VisualStudioGallery內的,其次NuGet和VisualStudioGallery的關註點不同,VisualStudioGallery主要是服務於VS為VS提供插件托管服務的平臺,
而NuGet是.NET軟體包的管理平臺,是為我們項目中使用的軟體包提供托管服務的。在項目開發中難免會引用一些其他人開發的類庫,NuGet就是為了方便我們引用各種類庫而存在的。
為什麼要用NuGet?
一個大的項目不可能所有的功能都要自己去實現,有句話說的好:“不要輕易造輪子”,最簡單直接的辦法就是使用別人造好的“輪子”。通常引用一個類庫到我們的項目中要先下載或找到類庫,然後複製到項目目錄,最後添加引用。
如果我們引用的類庫有更新的版本並且我們想使用的話又要重新添加引用,一兩個倒還好,如果引用數量較多的話重覆添加引用是比較麻煩和枯燥的,並且要卸載引用的時候還是要經過幾個步驟。
這也就是為什麼推薦使用NuGet的原因,NuGet能夠讓我們輕鬆的實現對軟體包的引用、更新和卸載。
NuGet怎麼使用?
前面已經說了什麼是NuGet以及我們為什麼要用NuGet,接下來我就通過一個簡單的控制台程式來說說怎麼用NuGet。
1.安裝NuGet
你可以從VS的擴展和更新中安裝NuGet。
或者從NuGet官方下載安裝包。
2.使用NuGet可視化管理器
通過可視化的NuGet管理器你可以瀏覽當前項目已經安裝的包或者瀏覽、搜索其他的包。
我們選中Newtonsoft.Json,在右側就會出現Newtonsoft.Json的詳細信息,選中要將Newtonsoft.Json下載到的項目,然後點擊安裝。NuGet會在解決方案目錄下創建packages目錄並將包下載到該目錄
下載完成後VS會自動將Newtonsoft.Json添加到我們的引用。
通過這個管理器你可以方便的對你引用的包進行可視化管理。
3.使用NuGet控制台管理器
除了可視化的管理器外NuGet也為我們提供了一個控制台應用,通常我更喜歡使用控制台管理器,因為使用簡單的命令我就能對包進行管理。
打開NuGet控制台管理器。
通過 Install-Package “包名”
這個命令我們就能完成對Newtonsoft.Json這個包的引用。
除此之外還可以通過 get-help NuGet
來獲取其他命令的信息。
Get-Package
:獲取當前已經安裝的包
UnInstall-Package
:卸載某個包
Update-Package
:升級某個包
等常用命令,更多命令以及NuGet的詳細內容可以查看NuGet官方文檔
總結
NuGet的存在使得我們不需要過多的去考慮引用軟體包方面的各種問題,我們只需要記住幾個簡單的命令就能輕鬆的實現對軟體包引用。但它的作用不僅於此,你還可以創建自己的軟體包併發布到NuGet上
供他人使用,你也可以搭建自己的伺服器來托管你的軟體包,這個對於大公司來說很實用,可以將內部開發的軟體包統一托管起來,並且方便使用。後面我會繼續深入的分析NuGet的使用。