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


轉載自:https://blog.csdn.net/xCyansun/java/article/details/78879193

 

 

第一步,打開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用來指定項目名稱。

 

 

轉載自:https://blog.csdn.net/xCyansun/java/article/details/78879193


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM