程序開發過程中基本都是由多個項目組成一個完整的解決方案。今天主要學習下如何在Visual Studio Code中進行多項目開發。
1.項目創建
首先創建一個文件夾MultiProject類似於Visual Studio中的解決方案文件夾。
在MultiProject分別創建dotNetCoreApp和dotNetCoreLib文件夾。
在這里dotNetCoreApp為一個控制台應用程序項目,dotNetCoreLib為類庫項目用於被引用。相關命令如下:
創建文件夾MultiProject:
mkdir MultiProject
創建項目:dotNetCoreApp:
mkdir dotNetCoreApp cd.. cd dotNetCoreApp dotnet new -t Console
創建項目:dotNetCoreLib:
mkdir dotNetCoreLib cd.. cd dotNetCoreLib dotnet new -t Lib
2.項目引用
使用Visual Studio Code打開MultiProject文件夾,如下圖所示:

打開dotnetCoreApp文件夾下的project.json文件,添加對dotNetCoreLib項目的引用。
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" }, "dotNetCoreLib":{ "target":"project" } }, "imports": "dnxcore50" } } }
修改dotNetCoreLib項目中命名空間名稱為dotNetCoreLib,在dotNetCoreLib項目中添加Libray類,並新增Method1方法:
using System; namespace dotNetCoreLib { public class Libray { public string Method1() { return "Hello dotNetCoreApp"; } } }
在dotnetCoreApp引用並調用dotNetCoreLib類庫中的Method1方法:
using System; using dotNetCoreLib; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Library lib=new Library(); Console.WriteLine(lib.Method1()); Console.ReadLine(); } } }
3.多項目調試
使用Visual Studio Code 1.7.2進行單項目的調試基本不用修改任何的配置,多項目調試稍微有些麻煩。
首先選擇調試環境.Net Core,生成launc.json,如下圖所示:

目前Visual Studio Code 1.7.2版本對下圖中的目標平台和項目名稱已經進行了自動填充,但是對於多項目還是和之前一樣

所以我們需要將該處修改如下:
"configurations": [ { "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceRoot}/bin/Debug/netcoreapp1.1/dotNetCoreApp.dll", "args": [], "cwd": "${workspaceRoot}", "stopAtEntry": false, "externalConsole": false },
配置完launch.json后,點擊調試按鈕,會提示我們“配置任務運行程序”,如下圖所示:

點擊“配置任務運行程序”,會出現下圖選擇,我們當然選擇.Net Core。如下圖所示

接下來會生成task.json文件,然后再次點擊“調試”按鈕,會出現如下圖錯誤:preLaunchTask“build”已終止,退出代碼為 1。

這就是我們多項目調試需要重點注意的地方,這里我們需要將task.json文件進行如下修改:
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "dotnet", "isShellCommand": true, "args": [], "tasks": [ { "taskName": "build", "args": [ "${workspaceRoot}/dotNetCoreApp/project.json" ], "isBuildCommand": true, "showOutput": "silent", "problemMatcher": "$msCompile" } ] }
這里配置的是我們主項目的project.json路徑。
配置完成后,當我們再次點擊”調試“按鈕,發現依然不能通過,報錯如下:

這個錯誤非常明顯,我們再次對launch.json做出如下修改:
"configurations": [ { "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceRoot}/dotNetCoreApp/bin/Debug/netcoreapp1.1/dotNetCoreApp.dll", "args": [], "cwd": "${workspaceRoot}", "stopAtEntry": false, "externalConsole": false },
到這里就完全OK,再次啟動調試。啟動成功。

