程序开发过程中基本都是由多个项目组成一个完整的解决方案。今天主要学习下如何在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,再次启动调试。启动成功。