解决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
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
最新文章
- 11. KVC And KVO
- 关于C#调用C++ 的DLL传送字符串显示乱码的解决
- 使用background和background-image对CSS优先级造成影响
- 【leetcode】Subsets II
- POJ水题 1298
- shell编程基础(2)---&;&;与||
- android:layout_weight总有你不知道的用法.
- sonarQube Scanner
- error: File not found by glob???
- 用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发
- “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift
- 使用C#开发Android应用之WebApp
- solr6.6初探之配置篇
- Apache ant
- python unittest套件,修改为失败重新执行
- CRC、MD5和SHA1的区别?
- 阿里云 CentOS安装Git
- 核心动画——Core Animation
- VLOOKUP函数的使用方法
- spring cloud ribbon源码解析(二)
热门文章
- 分布式系统之Quorum (NRW)算法
- 【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo
- splice slice
- Java-类和对象基础练习
- EF架构~有时使用SQL更方便
- Fedora Static Configure
- DataGridView的Cell事件的先后触发顺序
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
- Python数据类型之“文本序列(Text Sequence)”
- 基于Rest服务实现的RPC