为什么会有”坑“

  博客园里有好多介绍怎么使用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应用遇到的坑的更多相关文章

  1. VS Code调试.NET Core

    VS Code调试.NET Core应用遇到的坑 为什么会有”坑“ 博客园里有好多介绍怎么使用VS Code以及调试.NET Core的文章,但是都是基于直接构建Asp.Net Core Mvc单项目 ...

  2. 解决VS2015无法调试dotnet core项目

    dotnet core 1.0正式版和VS2015 update3安装后一直无法在VS中正常调试. 错误提示:The debugger's worker process (msvsmon.exe) u ...

  3. visual studio code 调试 .NET core 1.1.

    一  windows端  使用VsCode编写和调试.NET Core项目 1 .新建sln 解决方案 dotnet new sln -o slnname 2. 新建DLL 3.将DLL添加到sln: ...

  4. VS Code调试.Net Core版Hello World

    安装C#插件 下载安装插件,地址:https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp 安装插件之后重新启动VS C ...

  5. mac os 下 vs code 开发 .net core

    1.软件下载 .net core 2.0 sdk: vs code 最新版: 2.用 dotnet 命令行 dotnet cli 创建项目 打开终端,创建这次项目的文件夹,mkdir Demo1: c ...

  6. 使用VS Code 从零开始开发并调试.NET Core 应用程序

    最新文章:http://www.cnblogs.com/linezero/p/VSCodeNETCore.html 使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试. 上一 ...

  7. 使用VS Code从零开始开发调试.NET Core 1.0

    使用VS Code 从零开始开发调试.NET Core 1.0. .NET Core 是一个开源的.跨平台的 .NET 实现. VS Code 全称是 Visual Studio Code,Visua ...

  8. 在Mac上使用Visual Studio Code开发/调试.NET Core代码

    .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...

  9. 使用VS Code开发调试.NET Core 多项目

    使用Visual Studio Code(VS Code)开发调试.NET Core和ASP.NET Core 多项目multiple project. 之前讲解过如果使用Visual Studio ...

随机推荐

  1. [教程]怎么用百度云观看和下载"磁力链接"无需下载直接观看.

    1, 打开网址 http://okbt.net/  输入你想要看的电影名字, 点搜索,鼠标右键点击拷贝磁力链接.或者 电脑装了迅雷的话.可以直接点击.用迅雷下载. 磁力链接都是这种格式的.例: mag ...

  2. Linux修改环境变量的方法

    在Linux操作系统中,有时候跟着教程安装了一些软件,安装成功后,很高兴的准备运行该软件相应命令,但是偶尔会遇到”Command not found…“的提示.原因是因为你安装的软件需要设置环境变量才 ...

  3. RCP中如何使用代码安装、运行plugins

    其实在google或者http://www.eclipse.org/forums/就能够找到这个问题的答案. 搜索关键字:rcp install plugins\bundles programmati ...

  4. 使用SQLIO测试磁盘性能

    SQLIO 是一个用于测试存储系统能力的命令行工具,用以获取存储系统相关的性能指标,以判断系统的 I/O 处理能力. 在微软的网站可以下载 SQLIO 的安装包,安装后目录中会出现如下文件: EULA ...

  5. XP之后Windows的一些变化

    看到很多Windows开发人员,尤其是C++程序员思维还是停留在XP操作系统,当然根据工作是否需要新知识 ,这本身没有错.但是实际上Vista之后的Win7, 再之后的Win8 ,Windows已经发 ...

  6. iOS——Core Animation 知识摘抄(四)

    原文地址http://www.cocoachina.com/ios/20150106/10840.html 延迟解压 一旦图片文件被加载就必须要进行解码,解码过程是一个相当复杂的任务,需要消耗非常长的 ...

  7. Perl重命名当前目录下的文件

    下载的zip包解压后,中文都变成了乱码,就写了个脚本重命名文件. use strict; use warnings; use Cwd; sub main { my $dir = getcwd(); o ...

  8. 分离EF connectionString里的db连接串

    创建EF模型后,自动生成的connectionString如下: <add name="TravelPPEntities" connectionString="me ...

  9. ios 下创建,删除文件夹的方法

    NSString *imageDir = [NSString stringWithFormat:@"%@/Caches/%@", NSHomeDirectory(), dirNam ...

  10. Java-类与类之间的关系

    类与类之间的几种关系   一.继承关系      继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字exte ...