ASP.NET MVC系列文章css
【01】淺談Google Chrome瀏覽器(理論篇)html
【02】淺談Google Chrome瀏覽器(操做篇)(上)前端
【03】淺談Google Chrome瀏覽器(操做篇)(下)shell
【04】淺談ASP.NET框架 編程
【05】淺談ASP.NET MVC運行過程 瀏覽器
【06】淺談ASP.NET MVC 控制器 緩存
【07】淺談ASP.NET MVC 路由 安全
【08】淺談ASP.NET MVC 視圖 前端框架
【09】淺談ASP.NET MVC 視圖與控制器傳遞數據網絡
【10】淺談jqGrid 在ASP.NET MVC中增刪改查
【13】淺談NuGet在VS中的運用
【14】淺談ASP.NET 程序發佈過程
一 概述
在咱們講解NuGet前,咱們先來看看一個例子。
1.例子:
假設如今開發一套系統,其中前端框架咱們選擇Bootstrap,因爲選擇Bootstrap做爲前端框架,所以,在項目中,咱們須要引入Bootstrap相關文件,大體會執行以下操做。
步驟一:下載Bootstrap文件
輸入Bootstrap官網域名 http://v3.bootcss.com/
輸入域名,進入官網
步驟二:選擇合適的版本,下載Bootstrap包
步驟三:將包引入到項目中
關於將Bootstrap包引入到Project中,過程彷佛比較麻煩,更可怕的的是,當在項目中的Bootstrap包須要更新時,須要作重複的工做,這是很是繁瑣的,很好的是,VS自帶的NuGet包管理器很好地
幫助咱們解決了此類問題。
2.何爲Nuget包管理器?
對於.NET和VS而言,NuGet是一個.NET包管理系統,它能夠很容易地響應運用程序中添加、更新和刪除外部庫文件及其依賴。
除此以外,咱們能夠經過建立包,發佈包實現包之間的共享,使共享得以實現。
站在微軟的角度:要儘量地嘗試,不要期望Microsoft爲咱們提供所須要的每一段代碼,在.NET平臺上進行開發的開發人員多大數百萬甚至上千萬,而每個開發人員都有其獨特的技術和有待解決
的問題,等待Microsoft去解決每一個開發人員的每一個問題,既形不成規模,也沒有意義。值得慶幸的是,他們能夠經過網上發佈的一些庫萊解決他們或他們客戶遇到的問題。然而,面對網上的這些有
用的庫咱們面臨三大挑戰:發現,安裝和維護。但慶幸的是,NuGet卻很好地解決了此類問題。
二 將包添加到庫
將包添加到庫,有許多方式,經常使用方式爲Manage NuGet Package 和 Package Manager Console,下面將結合VS2017和基於ASP.NET MVC模板講解該兩種方式。
(一)Manage NuGet Packages
1.準備好VS2017開發環境,並用VS的MVC模板建立一個默認項目:NuGetDemo
分析:
細心的你會發現,在上圖中出項了packages.config文件,其實,它就是NuGet包的配置文件,由於咱們在選擇基於MVC模板建立項目時,默認的引入了第三方庫文件,如Bootstrap,Jquery等;
2.打開NuGet包管理器
引用=>管理Nuget程序包
3.打開NuGet包管理器後,咱們可執行以下操做
(1)瀏覽包 (2)查看當前系統已安裝包 (3)更新包 (4)在搜索框中搜索包
4.查看包的詳細信息
咱們以log4net爲例
分析:
包的基本信息
5.安裝
在安裝AnyLog.Log4Net以前,先選擇好安裝版本,而後再安裝。
6.查看安裝狀況
(1)查看控制檯輸出安裝信息狀況
(2)查看NuGet包已安裝狀況
(3)查看項目引用狀況
(4)查看packages.config文件
7.更新包
NuGet包管理器不只能幫助咱們安裝包,並且還能幫助咱們維護包,咱們能夠藉助NuGet包管理器來更新包。
注意:當咱們更新包時,這個操做也會更新該包的因此依賴,以確保只安裝依賴的兼容保本。
在如下例子中,咱們在項目NuGet中安裝了Log4net 2.0.3版本,如今,咱們將其更新都最新版本2.0.8,選擇「更新」。
點擊確認。
注意,此步會更新運用程序中與Log4net相關全部內容。
查看更新結果
8.包恢復
NuGet默認的工做流程是把包文件夾提交到版本控制,這樣作的一個好處是可從版本控制檢索解決方案,以確保構建解決方案的每一個包都可以安裝,並且這些包還不須要從其餘位置檢索。
可是,這樣作也是有弊端的,Packages文件夾不是VS解決方案的一部分,所以,經過VS集成管理版本控制的開發人員須要進行一個額外的步驟以確保Packages文件夾可以提交。
(1)TFS能夠自動提交Packages文件夾
(2)分佈式版本控制系統(如Git),不建議把Packages文件夾提交到版本控制,由於分佈式版本控制系統不擅長處理二進制文件,若是項目中大量的包都有變化,分佈式版本控制系統庫就會
變得很龐大。
可喜的是,NuGet 1.6引入的包修復功能來處理這些問題,這樣就支持一個新的個工做流程,咱們就不須要把Packages文件夾提交到源代碼控制了。
這個過程須要手動執行幾個步驟:對每一個項目都須要執行單獨的一步操做,以啓用包恢復(在NuGet2.0~2.6中,每一個開發人員還須要配置VS來容許包恢復)
注意:
如今NuGet包恢復時自動啓用的,可是在VS的Package Manager設置中使用下面兩個選項,能夠禁用包恢復功能:
a.容許NuGet下載缺乏包;
b.在VS中構建運用程序時,自動檢查缺乏的包;
經過NuGet 2.7 自動包恢復功能。
(二)Package Manager Console
Package Manager Console是Visual Studio 中基於PowerShell的控制檯,不只提供了強大的功能來查找和安裝包,並且還支持Manager NuGet Packages對話框不支持的一些功能。
1.啓動控制檯
工具=>NuGet包管理器=>程序包管理器控制檯
2.查看當前項目已安裝的包
在控制檯中輸入Get--Package,能夠查看當前項目已安裝的包
拓展:
(1)之前版本,能夠經過如下命令來過濾包
Get-Package -ListAvailable -Filter Route
(2)能夠採用以下命令代替Get-Package -ListAvailable -Filter 命令
Find-Package [-Id]
3.安裝包
在控制檯中經過:Install-Package 包名
下圖中,咱們在項目中安裝Log4net,所以輸入Install-Package Log4net,因爲我已在項目中安裝了Log4net,所以提示已經安裝。
拓展:
(1)PowerShell命令的支持擴展功能,至關於智能感應。輸入命令部分字符,按Tab鍵就能夠查看輸入的內容,從而實現智能感應。
(2) PowerShell支持複合命令,好比經過將一個命令管道傳輸到另外一個命令。
以下命令向解決方案中每個項目安裝一個包。
Get-Project -ALL | Install-Package log4net
(3)PowerShell也支持動態添加新命令
PowerShell強大之處在於,安裝的一些包能夠爲shell添加新命令。
(三)其餘方式啓動NuGet
如在項目名稱中添加,這裏不論述,核心內容仍是在如上的(一)和(二)部分。
4.關於包源和項目的選擇
經過選擇程序包源右邊的齒輪,便可查看該包及對包的基本操做
5.NuGet包管理器概述
(1)NuGe包管理器基本界面
在控制檯操做中,由兩大部分組成:常規和程序包源
(2)程序包源概述
拓展:
在Manage NuGet Packages 操做包方式中,與如上對應的操做
例子講解:
下面咱們講解基於如上兩種模式添加autofac包的操做過程
Manage NuGet Packages 方式
控制檯操做方式
(1)找到autofac包的NuGet地址
(2)添加autofac包
三 建立包
篇幅有限,之後專門寫一篇文章概述......
四 發佈包
篇幅有限,之後專門寫一篇文章概述......
五 參考文獻
【01】ASP.NET MVC5 高級編程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孫遠帥 譯)
六 版權區