並不是我自己琢磨的,是看了別人學習的,因為寫的都不完整,所以就整理一下記錄后面忘了回看。
反正.Net Core是跨平台的,就不說在什么系統上了。假設我要建一個名為Doggie的解決方案,里面包含了一個MVC項目,一個Models類庫,一個包含了公共方法的類庫Common,現在開始。
1、進入存放項目文件的文件夾,執行命令:
dotnet new sln -o Doggie
ps:能新建什么項目,可以使用dotnet new -h查看,會列出支持創建的項目類型和類型名字。
成功執行后可以看到目錄內多了一個名為Doggie的文件夾。
2、cd進入文件夾Doggie,在該文件夾內打開命令行,輸入如下命令:
dotnet new classlib -o Models
可以看到命令行輸出內容顯示創建了一個類庫,如果有依賴,還會幫我們還原。
接下來新建Common類庫,同樣的命令:
dotnet new classlib -o Common
.Net Core也會做同樣的事情,新建一個名為Common類庫。
接下來新建MVC項目,命令如下:
dotnet new mvc -o MvcApp
順利建好了。現在Doggie目錄下有三個文件夾。
現在項目文件建好了,接下來是不是要把前面創建的三個項目加到解決方案中?
執行命令:
dotnet add -h
提示的很清楚了對不對,要添加項目引用,使用reference,那就執行下面命令:
dotnet sln add Models/Models.csproj
ps:上面的內容中提到,add是有一個參數的,表示要添加引用的項目文件,如果不指定就在當前文件夾內搜索項目,咱們這里傳遞sln,表示要為sln文件添加引用,由於文件夾下只有一個sln,所以會默認加到Doggie.sln下。
我試了下,這個參數說是項目文件並不恰當,應該是項目文件類型,因為我嘗試傳入Doggie.sln時並不能成功執行。
同樣的命令添加Common和MvcApp。
dotnet sln add Common/Common.csproj
dotnet sln add MvcApp/MvcApp.csproj
現在已經全部建好文件了,接着用VSCode打開,VSCode並不能打開sln文件,所以只能直接打開文件夾了。
Doggie文件夾打開后如下,可見前面創建的三個項目都顯示在左側。這時就有個問題,前面只是把項目加到了解決方案中,那MvcApp項目要引用Common和Model類庫的呀,這時打開MvcApp.csproj文件:
發現只引用了.Net Core的兩個sdk,Common和Models並未引用,所以在MvcApp項目內也就不能使用這兩個類庫,其實添加和前面也是一樣的,打開Terminal窗口,執行命令:
cd MvcApp
dotnet add reference ../Common/Common.csproj
可以看到Common項目已經添加進來了,再打開MvcApp.csproj文件
同樣的方法添加Models類庫即可。
這樣在MvcApp中就可以使用Models和Common了。
ps:如果是第一次用VSCode打開.Net Core項目,肯定會有一堆錯誤,全是找不到命令空間啥的,因為這時VSCode還沒有C#的開發環境,這時就根據左下角彈出來的框,添加各種C#開發的擴展就好了。
再ps:上面是添加本地類庫,如果是添加nuget上的類庫怎么添加?就以添加Newtonsoft.json為例吧:
dotnet add package Newtonsoft.json --version 11.0.0.0
即可。