• VS Code调试.NET Core


    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"
      }

     

    project.json

     

    这是YOYOFx开源框架一个项目的project.json片段。

     

    YOYOFx框架

     

    GitHub:https://github.com/maxzhang1985/YOYOFx    Star下, 欢迎一起交流。

     

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

  • 相关阅读:
    Oracle创建上下文 SYS_CONTEXT
    闪回版本查询
    物化视图创建案例
    Oracle 多租户环境学习路线图
    【Mysql MHA】CentOS7.6+Mysql8.0.16 入坑
    【翻译】--19C Oracle 安装指导
    Docker(3)---常用命令
    Docker(2)---安装(设置镜像加速器)
    Docker(1)---基础概念
    AMQP高级消息队列协议
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5686643.html
Copyright © 2020-2023  润新知