解决VS Code调试.NET Core应用遇到的坑
为什么会有”坑“
博客园里有好多介绍怎么使用VS Code以及调试.NET Core的文章,但是都是基于直接构建Asp.Net Core Mvc单项目的,有什么区别呢!
(1).我们这次遇到的坑是在多项目的解决方案中遇到的,也就是说根目录不是一个项目的目录;
(2).DEBUG项目不能加载符号文件,导致项目不能断点调试;
解决问题
1.关于解决方案的目录问题
在launch.json中将 "program" 节点修改下:
"program": "${workspaceRoot}”,workspaceRoot是解决方案目录,修改这个值为"${workspaceRoot}/子项目目录/bin/Debug/netcoreapp1.0/<项目名称>.dll"
修改后,DEBUG发现没办法Build, 提示 Couldn't find 'project.json' in current directory 。
其实,原因是一样的都是找不到项目目录造成的,修改 tasks.json文件:
为其添加一个options节点:
{
// 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": [],
"options": {
"cwd": "${workspaceRoot}/子项目目录"
},
"tasks": [
{
"taskName": "build",
"args": [ ],
"isBuildCommand": true,
"showOutput": "silent",
"problemMatcher": "$msCompile"
}
]
}
options的cwd节点,指定了dotnet命令行的工作目录, 这样修改后就可以正常build了。
2.关于DEBUG不能断点调试
查看LOG,发现DEBUG时会提示如下信息:
Could not load symbols for '*.dll'. '*.pdb' is a Windows PDB. These are not supported by the cross-platform .NET Core debugger.
大概的意思就是在windows下生成的符号文件,不能被跨平台的调试器加载。
解决方案很简单,在每个需要调试的项目文件(project.json)中,加入一个节点信息如下:
"buildOptions": {
"debugType": "portable"
}
{
"version": "0.1.3-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Owin": "1.0.0",
"NETStandard.Library": "1.6.0",
"YOYO.AspNetCore.Mvc": {
"version": "0.1.3-*",
"target": "project",
"type": "build"
},
"YOYO.AspNetCore.Owin": {
"version": "0.1.3-*",
"target": "project",
"type": "build"
},
"YOYO.Extensions.DI": "1.0.0-*"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
},
"net451": {
"dependencies": {
"Owin": "1.0.0"
}
}
}
}
project.json
这是YOYOFx开源框架一个项目的project.json片段。
YOYOFx框架
GitHub:https://github.com/maxzhang1985/YOYOFx Star下, 欢迎一起交流。
YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台。
.NET Core 和 YOYOFx 的交流群: 214741894 
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
解决VS Code调试.NET Core应用遇到的坑的更多相关文章
- VS Code调试.NET Core
VS Code调试.NET Core应用遇到的坑 为什么会有”坑“ 博客园里有好多介绍怎么使用VS Code以及调试.NET Core的文章,但是都是基于直接构建Asp.Net Core Mvc单项目 ...
- 解决VS2015无法调试dotnet core项目
dotnet core 1.0正式版和VS2015 update3安装后一直无法在VS中正常调试. 错误提示:The debugger's worker process (msvsmon.exe) u ...
- visual studio code 调试 .NET core 1.1.
一 windows端 使用VsCode编写和调试.NET Core项目 1 .新建sln 解决方案 dotnet new sln -o slnname 2. 新建DLL 3.将DLL添加到sln: ...
- VS Code调试.Net Core版Hello World
安装C#插件 下载安装插件,地址:https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp 安装插件之后重新启动VS C ...
- mac os 下 vs code 开发 .net core
1.软件下载 .net core 2.0 sdk: vs code 最新版: 2.用 dotnet 命令行 dotnet cli 创建项目 打开终端,创建这次项目的文件夹,mkdir Demo1: c ...
- 使用VS Code 从零开始开发并调试.NET Core 应用程序
最新文章:http://www.cnblogs.com/linezero/p/VSCodeNETCore.html 使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试. 上一 ...
- 使用VS Code从零开始开发调试.NET Core 1.0
使用VS Code 从零开始开发调试.NET Core 1.0. .NET Core 是一个开源的.跨平台的 .NET 实现. VS Code 全称是 Visual Studio Code,Visua ...
- 在Mac上使用Visual Studio Code开发/调试.NET Core代码
.Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...
- 使用VS Code开发调试.NET Core 多项目
使用Visual Studio Code(VS Code)开发调试.NET Core和ASP.NET Core 多项目multiple project. 之前讲解过如果使用Visual Studio ...
随机推荐
- Yii2中的零碎知识点
PHP最佳实践 1 PHP获取时间戳:echo time(); 时间戳转换 date('Y-m-d H:i:s', $时间戳); 2 linux 显示命令 ls 显示所有文件夹 查看命令:tail ...
- mono for android学习过程系列教程(6)
接着上一讲,今天讲的是Button,CheckBox这二个安卓元素, 我们来看第一个Button这个控件,类似winform和webform里面一样,它也是 存在有触发事件的,我们新建初始化项目直接就 ...
- 《静静的dojo》 总体教程介绍
web2.0时代,ajax技术成为整个前端开发领域的基石.大部分的书籍.博客由此切入来介绍前端类库与框架,所以dojo往往只被当做一个ajax类库来介绍,然而仅仅以此来定位dojo,无异于管中窥豹.对 ...
- 开发者必知的几款App快速开发工具
“我有一个好创意,就差一个CTO……” ,这是今年炒的比较火的一句话. “原生APP开发难度大,周期长,成本高,还没上线市场已经被占领了.这个有没有解决方案?” “APP版本迭代更新,都是企业的一道难 ...
- 开源项目asmjit——调用自定义方法demo以及windbg调试
asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...
- JavaScript 正则表达式上——基本语法
定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- AT&T Assembly on Linux
je if equal then jmp jg if the second gt the first, then jmp jge if the second ge the first, then jm ...
- EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离
回到目录 前几天看了一个基于sqlserver的负载均衡与读写分离的软件Moebius,实现的方式还是不错的,这使得用sqlserver数据库的同学时有机会对数据库进行更有效的优化了
- C#学习系列-String与string的区别
参考:http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=9851&m=9832&ct=31042 如 ...
- G2 DT时代的图形语法 正式发布
G2有一个高大上的名字叫做:The Grammar Of Graphics——图形语法.它是一个强大的语义化图表生成工具,它提供了一整套图形语法,可以让用户通过简单的语法搭建出无数种图表,并且集成了大 ...