ASP.NET MVC系列文章
【02】淺談Google Chrome瀏覽器(操作篇)(上)
【03】淺談Google Chrome瀏覽器(操作篇)(下)
【04】淺談ASP.NET框架
【07】淺談ASP.NET MVC 路由
【08】淺談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 ,孫遠帥 譯)
六 版權區
- 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
- 博主網址:http://www.cnblogs.com/wangjiming/。
- 極少部分文章利用讀書、參考、引用、抄襲、復制和粘貼等多種方式整合而成的,大部分為原創。
- 如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:2016177728@qq.com。
- 可以轉載該博客,但必須著名博客來源。