如何使用VS Code在.Net Core 2.0中添加項目並引用本地包

廢話後面再說,先將操作步驟貼出來。

第一步,打開VS Code,使用快捷鍵“Ctrl + `”打開終端,或者在菜單欄的“查看”菜單中找到“集成終端”並點擊。在打開的終端窗口中輸入一下命令定位到保存程序的目錄,並新建文件夾“LocalNupkgRefExample”,文件夾名稱自己定義。如下圖所示。

命令說明:

cd 參數:DOS命令,定位到參數中指定的文件夾

mkdir 參數:DOS命令,在當前目錄創建文件夾,名稱由參數指定。如果參數中指定了路徑,那麼會在指定的位置創建文件夾,例如 mkdir ../Test,會在上一級目錄創建Test文文件夾。

爲了方便管理文件,我們可以在VS Code中打開剛纔創建的文件夾(“文件”菜單下的“打開文件夾”項),然後通過VS Code的資源管理器管理裏面的文件,這裏不再多說,這些操作自己可以向玩新手機一樣自己嘗試一下。

注意:本示例是用.Net Core 2.0做的,如果你的電腦上沒有安裝,請先下載並安裝。安裝後其實只要使用記事本和控制檯也可以編寫本示例。

第二步,使用dotnet new命令添加一個空項目,命名爲“LocalNupkgLib”,用來作爲被引用的本地包(現在叫做“包”並不合適,因爲這只是編寫時管理程序的項目,還沒有打包)。如下圖所示。運行命令後會在當前目錄“LocalNupkgRefExample”下創建一個文件夾“LocalNupkgLib”,並在裏面創建名稱爲LocalNupkgLib的項目文件,以及一個名稱爲Class1的類文件。

命令說明:

dotnet new 模板 -n 名稱:在使用.net core命令時需要使用dotnet命令提示符,new命令用於表明添加新文件, 模板用於指出文件類型,-n指示該文件名稱由後面的參數“名稱”指定。截圖中模板爲classlib,表示創建類庫。如果不使用-n指定文件名稱,會默認以當前文件夾的名稱爲文件名稱。

可以使用 dotnet new或dotnet new -h或者dotnet new --help來查看new命令可以創建哪些文件類型。

第三步,在資源管理器中修改Class1的名稱爲MyClassLib(刪除這個類文件再添加新的也可以),修改類名稱爲MyClassLib,並在裏面添加一個屬性Message,用於在其他項目中使用。

第四步,將剛纔的項目打包。使用命令pack將項目打包到指定位置。

命令說明:

pack 項目名稱 -o 目標位置:項目名稱就是在之前創建的項目LocaNupkgLib.csproj的名稱LocalNupkgLib,-o後面輸入要將包放在哪個位置,如果不指明位置,默認會打包到要打包的項目的生成文件中,即Debug文件夾裏面。這裏爲了便於其他項目引用,將位置放在了與該項目同級的文件夾LocalNupkgRefExample下。

如果打包時項目名稱寫上了擴展名,那麼就需要在運行命令時寫上項目目錄,如下圖所示,當前命令所在的目錄是LocalNupkgRefExample,而項目文件LocakNupkgLib是在子文件夾LocalNupkgLib中,所以直接運行命令dotnet pack LocalNupkgLib.csproj -o ..\mypack就發生報錯,提示找不到項目文件,而不上子文件夾後就可以正常打包了。

個人猜想在不寫項目擴展名時,系統認爲項目是在所提供的文件夾LocalNupkgLib中,會在這個文件夾中查找項目文件,名稱不一樣也沒關係(這一點還沒驗證)。

打包後可以在資源管理器中看到剛纔生成的文件夾mypacks,裏面包含一個包文件LocalNupkgLib.1.0.0.nupkg。

如果需要了解詳細的打包命令,可以使用dotnet pack -h來查看。

第四步,添加控制檯項目,用於引用剛纔生成的包。

使用命令dotnet new console -n LocalNupkgApp添加一個控制檯項目。這一個和添加類庫的命令類似,只是將classlib改爲了console。其他不再做說明。

在資源管理器中展開LocalNupkgApp文件夾,可以看到裏面有一個項目文件LocalNupkgApp.csproj。打開Program.cs類文件,我們在裏面調用一下在上一個項目中添加的類庫LocalNupkgLib中的方法。如下圖所示。這裏因爲還沒有引用打包好的包文件,所以不會有智能提示。

可以使用命令 dotnet new或者dotnet new -h來查看可以生成哪些類型的問題。

第五步,生成一下這個控制檯項目,看看會發生什麼。

使用命令dotnet build LocalNupkgApp後發生了報錯,如下圖所示,這個報錯提示Program.cs中應該輸入“;”。檢查後發現上面修改的Program.cs中缺少了一個分號,添加後保存。

重新運行命令,發生了另外一個報錯:缺少引用。是不是和Visual Studio中發生的問題一樣?接下來就是要解決這個引用的問題了。

第六步,在控制檯項目中添加本地引用。

運行命令dotnet add LocalNupkgApp package LocalNupkgLib。運行後發生報錯,提示找不到這個包。注意錯誤提示,是到一個網站上查找的,而不是本地我們指定的那個位置mypacks。

爲了讓系統知道從哪裏找我們的包文件,我們需要修改一個控制檯項目的項目文件LocalNupkgApp.csproj.

如下圖所示,打開LocalNupkgApp.csproj文件,在PropertyGroup中添加元素<RestoreSources>..\mypacks</RestoreSources>,“..\mypacks”即是我們指定的包位置,因爲mypacks文件夾位於控制檯項目文件夾的上一級,所以需要使用“..”來確定相對路徑。

再次運行包引用命令。可以看到已經沒有報錯,並且顯示添加上了包。這時在查看LocalNupkgApp.csproj文件可以看到裏面已經添加了一個元素<PackageReference>。當然這個元素我們也可以手動添加到項目文件中,而不用命令行。

第七步,重新生成項目。已經沒有報錯了。

第八步,運行項目。可以看到已經顯示了我們添加的消息。

運行項目使用run命令,注意要添加-p用來指定項目名稱。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章