.netcore使用vscode多项目调试

开发环境:windows    编辑器: Visual Studio Code

环境安装:

.Net Core 1.1 SDK     https://www.microsoft.com/net/core#windowscmd

1.新建一个多项目文件夹multiproject,cmd命令 :mkdir multiproject,也可以用右键添加新建文件夹。(ps:vscode调试控制台也有终端,也可输入cmd命令)

2.在multiproject目录下新建dotnetnewapp控制台项目,在cmd窗口输入

cd  multiproject

mkdir dotnetnewapp

cd dotnetnewapp

dotnet new

这样就在multiproject下新建了dotnetnewapp项目。

3.新建一个类库项目 dotnetnewlib :同样需要切换到目录multiproject下,在cmd窗口输入

mkdir dotnetnewlib

cd dotnetnewlib

dotnet new  -t lib

这样就在multiproject下新建了dotnetnewlib 项目。

4.在 dotnetnewlib添加calculator.cs文件

using System;

namespace dotnetnewlib
{
public class calculator
{
public static int add(int a,int b )
{
return a + b;
}
}
}

5.dotnetnewapp引用类库dotnetnewlib。

(1)在dotnetnewapp目录下修改project.json,添加dotnetlib引用。

{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
},
"dotnetnewlib":{
"target":"project",
"version": "1.0.0"
}
},
"imports": "dnxcore50"
}
}
}

(2)修改program.cs文件

using System;
using dotnetnewlib; namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{ int result = calculator.add(,);
Console.WriteLine($"Hello World {result}!");
}
}
}

6.在cmd下编译运行项目。

(1)编译类库:切换到dotnetnewlib目录,在cmd下输入

dotnet restore

dotnet build

(2)编译并运行dotnetnewapp项目:切换到dotnetnewapp目录,在cmd下输入

dotnet restore

dotnet build

dotnet run

可以看到输出:Hello World 5!

7.用vscode运行dotnetnewapp项目

打开multiproject文件夹,点击左边的调试菜单,点击设置,选择.net core,可新建launch.json文件,直接点击调试按钮,会提示缺少task.json文件,是否新建,选择新建。

运行后依然报错。

需要配置如下:

launch.json,在.NET Core Launch (console)配置项配置program和cmd为dotnetnewapp项目生成的dll路径和项目路径

{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/dotnetnewapp/bin/Debug/netcoreapp1.1/dotnetnewapp.dll",
"args": [],
"cwd": "${workspaceRoot}/dotnetnewapp",
"stopAtEntry": false,
"externalConsole": false
}

tasks.json,添加options项,并设置cmd为为dotnetnewapp项目路径

{
// 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": [],
"isBuildCommand": true,
"showOutput": "silent",
"problemMatcher": "$msCompile"
}
],
"options": {
"cwd": "${workspaceRoot}/dotnetnewapp"
}
}

继续点击开始调试按钮,可看到调试控制台输出 Hello World 5!

8.打开dotnetnewapp项目的program.cs文件,发现calculator并没有代码提示,vscode最下边的蓝色的栏目右边有一个switch projects或者是2 projects,点击它。

上面弹出下拉框,选择project.json dotnetnewapp 。确定后发现代码提示有了。接着就可以添加断点进行调试了。

最后:附上项目文件截图,可以看到dotnetnewapp/bin/Debug/netcoreapp1.1下面生成了dotnetnewlib.dll和dotnetnewapp.dll

.netcore使用vscode多项目调试

ps:上述内容大部分参考网上资料结合自己总结。原理部分还没研究,有些地方也忽略描述了~

上一篇:github jekyll site不再使用Maruku由于Markdown翻译员,但kramdown


下一篇:Node.js V0.12新特性之性能优化