.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(2,3);
            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

 

 

 


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

posted @ 2017-03-01 14:29  ldybyz  阅读(844)  评论(0)    收藏  举报