开发环境: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

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

.netcore使用vscode多项目调试的更多相关文章

  1. .NetCore 使用VSCode多项目调试

    使用VSCode可以调试.Net Core,但是调多个项目就需要进行一番设置. 首先创建一个总文件夹,以NetProjects文件夹为例,并创建一个解决方案.然后创建俩个.NetCore项目,并添加到 ...

  2. Ubuntu16.04 中 Vscode 如何断点调试C语言程序

    个人博客链接:Ubuntu16.04 中 Vscode 如何断点调试C语言程序 问题:环境是 Ubuntu16.04,如何使用 Vscode 断点调试C语言程序. 写代码没有调试环境是不能忍受的,所以 ...

  3. VsCode编写和调试.NET Core

    本文转自:https://www.cnblogs.com/Leo_wl/p/6732242.html 阅读目录 使用VsCode编写和调试.NET Core项目 回到目录 使用VsCode编写和调试. ...

  4. VSCode调试Html中的脚本 vscode前端常用插件推荐,搭建JQuery、Vue等开发环境 vsCode 添加浏览器调试和js调试的方法总结 VS Code - Debugger for Chrome调试js

    一.背景 使用Visual Studio Code写了一个简单的Html页面,想调试下其中script标签里的javascript代码,网上查了一通,基本都是复制粘贴或者大同小异的文章,就是要安装De ...

  5. 基于.NetCore开发博客项目 StarBlog - (15) 生成随机尺寸图片

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  6. VS2013启动项目调试的时候会启动本地IIS

    VS2013启动项目调试的时候会启动本地IIS ,而在这种状态下去调试程序,会有很多功能用不了,而且还会有错误:如下图: 解决方法,将托管管道模式更改一下就行了:

  7. vs2017 .net core 项目调试浏览器网页闪退Bug

    from:https://blog.csdn.net/qq_36330228/article/details/82152187 vs更新2017最新版本后,项目调试浏览器莫名其妙出现闪退,每次都TMD ...

  8. VSCode配置python调试环境

    VSCode配置python调试环境 很久之前的一个东东,翻出来看看 VSCode配置python调试环境 * 1.下载python解释器 * 2.在VSCode市场中安装Python插件 * 4.在 ...

  9. vsCode 添加浏览器调试和js调试的方法总结

    vsCode 添加浏览器调试和js调试的方法 1.直接按F5可以调试的方法或者点击运行按钮(可以直接运行html文件或者js文件) 在launch.json文件中的配置如下: {     " ...

随机推荐

  1. Android-xliff

    先看以下这个案例,然后在分析: string.xml 使用xliff,需要导入命名空间 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2& ...

  2. 第42件事 移动App设计的11大法则

    移动App设计的重要法则指的是我们在设计App需要遵守的一些设计规范和法则,这些法则就好像一些行为规范一样. 1.导航手机客户端上的主导航(一级导航)如图6-22所示. 对图6-22中所示的几个主导航 ...

  3. .NET高级代码审计(第四课) JavaScriptSerializer反序列化漏洞

    0X00 前言 在.NET处理 Ajax应用的时候,通常序列化功能由JavaScriptSerializer类提供,它是.NET2.0之后内部实现的序列化功能的类,位于命名空间System.Web.S ...

  4. Spring IOC 容器源码分析 - 循环依赖的解决办法

    1. 简介 本文,我们来看一下 Spring 是如何解决循环依赖问题的.在本篇文章中,我会首先向大家介绍一下什么是循环依赖.然后,进入源码分析阶段.为了更好的说明 Spring 解决循环依赖的办法,我 ...

  5. boost bind及function的简单实现

    前面在做 http server 的时候,需要做一个回调的接口,要求能够绑定类的函数以及普通的函数到这个回调里,对于这种应用要求,选择 boost 的 bind 和 function 是最合适不过了, ...

  6. PHP 调试工具Xdebug安装配置

    ## PHP 调试工具Xdebug安装配置 一.Xdebug 介绍 Xdebug是一个开源的PHP程序调试工具,可以使用它来调试.跟踪及分析程序运行状态.当然,Xdebug需要结合PHP的编辑工具来打 ...

  7. ICMP与ping:投石问路的侦察兵

    1. ICMP 协议 ICMP全称Internet Control Message Protocol,就是互联网控制报文协议.ping命令就是基于它工作的. ICMP 报文是封装在 IP 包 里面的. ...

  8. 设置iptables NAT出外网

    有时候云上部署环境,不能动态自设路由,没有公网ip地址的服务器,只能通过NAT的方式出外网,下面就记录一下设置过程. 当前状态 服务器A只有一个内网IP,不能上外网,内网IP与服务器B内网相通:服务器 ...

  9. defer 的常用场景

    将panic的转化为error类型值,并将其作为函数值返回给调用方 package main import "fmt" func divide(a, b int) (res int ...

  10. 为什么需要jQuery Mobile

        1.没有所谓的移动互联网,只有一个互联网     2.设计移动网站不需要什么特别处理     3.一个站点应当在所有设备(台式机.手机.电视)上都能运转     jQuery Mobile诞生 ...