为什么会有”坑“

  博客园里有好多介绍怎么使用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 

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

最新文章

  1. 11. KVC And KVO
  2. 关于C#调用C++ 的DLL传送字符串显示乱码的解决
  3. 使用background和background-image对CSS优先级造成影响
  4. 【leetcode】Subsets II
  5. POJ水题 1298
  6. shell编程基础(2)---&amp;&amp;与||
  7. android:layout_weight总有你不知道的用法.
  8. sonarQube Scanner
  9. error: File not found by glob???
  10. 用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发
  11. “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift
  12. 使用C#开发Android应用之WebApp
  13. solr6.6初探之配置篇
  14. Apache ant
  15. python unittest套件,修改为失败重新执行
  16. CRC、MD5和SHA1的区别?
  17. 阿里云 CentOS安装Git
  18. 核心动画——Core Animation
  19. VLOOKUP函数的使用方法
  20. spring cloud ribbon源码解析(二)

热门文章

  1. 分布式系统之Quorum (NRW)算法
  2. 【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo
  3. splice slice
  4. Java-类和对象基础练习
  5. EF架构~有时使用SQL更方便
  6. Fedora Static Configure
  7. DataGridView的Cell事件的先后触发顺序
  8. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
  9. Python数据类型之“文本序列(Text Sequence)”
  10. 基于Rest服务实现的RPC