博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决VS Code调试.NET Core应用遇到的坑
阅读量:5098 次
发布时间:2019-06-13

本文共 2211 字,大约阅读时间需要 7 分钟。

为什么会有”坑“

  博客园里有好多介绍怎么使用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:    Star下, 欢迎一起交流。

YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台。

 .NET Core 和 YOYOFx 的交流群: 214741894  

 

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

转载于:https://www.cnblogs.com/maxzhang1985/p/5682027.html

你可能感兴趣的文章
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
Hmailserver搭建邮件服务器
查看>>
django之多表查询-2
查看>>
快速幂
查看>>
改善C#公共程序类库质量的10种方法
查看>>
AIO 开始不定时的抛异常: java.io.IOException: 指定的网络名不再可用
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
[Data Structure & Algorithm] 有向无环图的拓扑排序及关键路径
查看>>
cassandra vs mongo (1)存储引擎
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>