VS Nuget的使用實踐
一、引言
最古老的時候我們想引用一個第三方類庫,方法就是先下載第三方的dll文件,然后放置到我們的項目中,然后添加引用來引用這些dll,這種方法有各種的不便,比如引用dll的版本不一致,或者dll忘記放到項目目錄提交等等,使用過老版本VS的應(yīng)該都深有體會,nuget就是為了解決類庫引用的痛楚而出現(xiàn)的。
二、認識Nuget
Nuget是一個VS的擴展插件。我們在使用VS開發(fā)時,Nuget能把在項目中添加、移除和更新引用的工作變得更加快捷方便。
我們可以通過VS菜單上的“工具→擴展和更新”來查看Nuget
三、如何使用Nuget
1.常規(guī)使用
在解決方案管理器中,我們可以通過“右鍵子項目→管理Nuget程序包”或“右鍵子項目下的引用→管理Nuget程序包”來對該子項目的引用進行管理
在打開的“管理Nuget程序包”窗口中我們可以對該子項目引用的類庫進行管理
2.安裝類庫的歷史版本
nuget中搜索到的,一般都是該類庫最新版本的,在使用過程中,我們可能需要去下載類庫的歷史版本,打開nuget官網(wǎng):
輸入要安裝的類庫關(guān)鍵詞,比如我要安裝EF的6.0.2版本,直接搜索EF即可
第一個即我們想要的,點擊進入詳情
這里我們能看到該類庫對其他類庫是否有依賴,以及類庫的各個歷史版本。安裝類庫的歷史版本就需要用到“程序包管理控制臺”了,可以從菜單“工具→Nuget包管理器→程序包管理控制臺”打開
偶爾有碰到程序包管理控制臺打開失敗的情況,現(xiàn)象是打開了這個窗口,但是里邊是一片空白,后來查詢了下資料VS的Nuget包管理器是依賴于Windows操作系統(tǒng)的PowerShell的,從開始菜單打開一次PowerShell,然后在VS里重新打開程序包管理控制臺問題就解決了。
接下來比如我們要安裝EF的6.0.2版本,在nuget官網(wǎng)上從EF的歷史版本中找到6.0.2,點進去就可以看到安裝命令
確保你要安裝的子項目沒選錯,然后將命令粘貼到這里回車執(zhí)行,沒有錯誤提示就說明安裝成功了。
3.常見問題
Nuget安裝時會自動下載類庫相關(guān)dll,存放路徑為解決方案目錄下package文件夾,因為package文件會比較大,實際開發(fā)中一般不會隨源碼一塊提交到svn或者git,所以從svn或者git拉取源碼以后,第一次生成時Nuget會自動還原項目中引用的類庫。偶有還原失敗的情況,可以手動還原重試,方法是:右鍵解決方案→啟用Nuget程序包還原
如果Nuget包還原失敗或者無法搜索在線類庫,請檢查Nuget源是否可用,可以嘗試配置DNS為百度開放DNS:180.76.76.76,或者114.114.114.114,以及檢查自己電腦否使用了Http代理,瀏覽器翻(科)墻(學(xué))插件,VPN等,如果有代理可以關(guān)閉/停用了代理以后重試。
Nuget還原實際使用中還碰到了部分解決方案包還原失敗的情況,即還原成功以后,在“解決方案管理器”中展開子項目的“引用文件夾”有黃色嘆號出現(xiàn),此時可以在程序包管理控制臺中使用如下命令重新安裝改子項目的包:
Update-Package -reinstall -ProjectName 項目名稱
如,重新安裝Model項目的包:
Update-Package -reinstall -ProjectName BookShop.Model
命令:Update-Package -reinstall可以重新安裝解決方案下的所有包,但是這里不建議使用,因為被坑過一次,重新安裝解決方案的所有包耗時非常長,也沒有執(zhí)行的必要性。
在實際使用中,如果我們要搭建2個框架相似的項目,假設(shè)其中一個已經(jīng)搭建好了,那么另外一個項目就不需要用nuget管理器界面再重新把所有的引用再次搜索添加一遍了,只需要把對應(yīng)子項目下的packages.config文件復(fù)制過來,執(zhí)行nuget還原命令即可。
部分類庫的nuget包的安裝以后不會在項目引用目錄下自動添加對相應(yīng)dll的引用,比如mysql相關(guān)的MySql.Data、MySql.Data.Entity,此時手動添加引用即可(右鍵解決方案→添加引用→程序集→擴展中找到添加即可)
4.離線安裝nuget包
在某些環(huán)境下我們可能需要離線安裝nuget包(比如開發(fā)用的電腦無法直接聯(lián)網(wǎng))。
首先,我們需要去nuget官網(wǎng)下載好需要安裝的nuget包(即.nupkg后綴的文件,需要注意的是離線安裝模式依賴項需要手動下載安裝)
其次,添加nuget離線源,通過菜單“工具→Nuget包管理器→程序包管理器設(shè)置”打開nuget包管理器配置。
點擊右上角的添加按鈕,填寫自定義的源名稱和地址路徑,可以配置任意的文件夾,將下載好的.nupkg包文件放入該文件夾即可。
然后我們在nuget包管理器中源選擇我們創(chuàng)建的離線源就可以看到我們剛才放進去的離線包了
接下來安裝即可,需要注意的是離線安裝可能會提示依賴問題,需要手動安裝依賴后才能安裝成功
到此這篇關(guān)于VS Nuget的使用實踐的文章就介紹到這了,更多相關(guān)VS Nuget使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解phpstudy linux web面板(小皮面板)V0.2版本正式發(fā)布
小皮面板,是由phpStudy官方團隊針對Linux服務(wù)器開發(fā)推出的一款服務(wù)器環(huán)境搭建以及管理工具。這篇文章主要介紹了phpstudy linux web面板(小皮面板)V0.2版本正式發(fā)布,需要的朋友可以參考下2019-10-10VScode?隱藏大量無用的文件比如在看Linux?kernel或boot時候
這篇文章主要介紹了VScode?隱藏大量無用的文件比如在看Linux?kernel或boot時候,VScode 工程創(chuàng)建先在 Ubuntu 下編譯一下 uboot,然后將編譯后的 uboot 文件夾復(fù)制到 windows 下,并創(chuàng)建VScode 工程,需要的朋友可以參考下2022-10-10IDEA 2020 設(shè)置項目集成git 及svn和git之間的切換問題
這篇文章主要介紹了IDEA 2020 設(shè)置項目集成git 及svn和git之間的切換問題,本文通關(guān)圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09Git遠程倉庫配置SSH的實現(xiàn)(以github為例)
本文主要介紹了Git遠程倉庫配置SSH的實現(xiàn)(以github為例),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07transform實現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸實例詳解
這篇文章主要介紹了transform實現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸的相關(guān)資料,需要的朋友可以參考下2016-09-09人工智能機器學(xué)習(xí)常用算法總結(jié)及各個常用算法精確率對比
這篇文章主要介紹了人工智能機器學(xué)習(xí)常用算法總結(jié)及各個常用算法精確率對比,需要的朋友可以參考下2020-03-03