如何在 Visual Studio Code 中调试之前自动运行构建任务?

2024-06-23

在 VS Code 中,我必须先运行构建任务,然后开始调试,而在 CLion 中,我只需单击“调试”,然后它会在必要时自动构建并开始调试。有没有办法在 VS Code 中自动执行此操作?


将构建任务添加到 Launch.Json


您正在寻找的可能是如何将构建任务链接到调试配置。我将尝试在下面说明该过程。

要访问构建配置,请转到侧面的调试栏 (1),然后按齿轮图标访问 launch.json 配置文件 (2)。您需要在该 launch.json 文件的配置下添加预启动任务,并将其链接到您的构建任务 (3)。

在Tasks.Json中定义构建任务


然后,您需要通过使用 ctrl-shift-b 运行它来设置构建任务。

如果它已经存在(如您的帖子中所暗示的),您可以在tasks.json 文件的 .vs-code 文件夹中找到它。如果打开该 task.json 文件,您将在列表中找到构建任务。您现在需要做的就是获取该任务的“标签”并将其放入预启动配置中的 launch.json 中。

祝你好运!

Appendix


附录添加了在共享预启动构建之后并行运行配置的示例。

问:如果构建任务失败,但启动过程从旧的二进制文件开始,该怎么办?

答:@JoKing 给出的潜在解决方案:添加一个删除二进制文件的新任务,并在每次构建之前通过在构建任务中使用“dependsOn”选项要求它来执行此任务。下面给出了一个示例,了解它在tasks.json 文件中的外观,source https://github.com/Microsoft/vscode/issues/31731

   "tasks": [
    {
      "taskName": "build",
      "command": "tsc",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "dependsOn": [
        "build client",
        "build server"
      ]
    },
    {
      "taskName": "build client",
      "command": "tsc",
      "args": [
        "-w",
        "-p",
        "${workspaceRoot}/src/typescript/client"
      ]
    },
    {
      "taskName": "build server",
      "command": "tsc",
      "args": [
        "-w",
        "-p",
        "${workspaceRoot}/src/typescript/server"
      ]
    }
  ]

问:我有多个配置,但想在所有配置之前运行一次构建任务,这可能吗?

A:我之前没有亲自设置过这个,但是复合发射配置 https://code.visualstudio.com/docs/editor/debugging#_compound-launch-configurations可能就是您正在寻找的。该页面的示例有两个配置:“服务器”和“客户端”,它们可以在遵循 prelaunchTask(“defaultBuildTask”)的同时并行启动。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Server",
      "program": "${workspaceFolder}/server.js"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Client",
      "program": "${workspaceFolder}/client.js"
    }
  ],
  "compounds": [
    {
      "name": "Server/Client",
      "configurations": ["Server", "Client"],
      "preLaunchTask": "${defaultBuildTask}"
    }
  ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual Studio Code 中调试之前自动运行构建任务? 的相关文章

随机推荐

  • pythonlogging.handlers.RotatingFileHandler是否允许创建组可写日志文件?

    我正在使用标准 python 2 5 2 日志模块 特别是RotatingFileHandler 在Linux系统上 我的应用程序同时支持命令行界面和 Web 服务界面 我希望两者都写入同一个日志文件 但是 当日志文件轮换时 新文件已644
  • PropertyUtils.copyProperties 什么时候可以默默地失败?

    我在用着PropertyUtils copyProperties http commons apache org beanutils api org apache commons beanutils PropertyUtils html c
  • Pydub from_mp3 给出 [Errno 2] 没有这样的文件或目录

    我发现自己站在墙前 只是尝试将音频文件加载到 pydub 中进行转换 但不断抛出 Errno 2 没有这样的文件或目录 错误 当然 我花了太多时间来确保路径有效 尝试了相对路径和绝对路径 并确认 python 方法 open 可以在完全相同
  • CSS-hack - 在网站正文中添加 css

    我陷入了只能访问网站正文而不能访问网站头部的情况 我必须使用新的样式表 现在我遇到了在网站正文中添加 CSS 文件的解决方案 当然 这是一个黑客 所以我想知道是否有更好的解决方案 我们有不同的方法来加载 CSS 文件 1 HTML 在页面上
  • iPhone VS ipad开发流程(异同)

    我是 iOS 开发新手 我正在努力弄清楚这些事情 iPhone 和 iPad 上的项目 两者有哪些相同之处 编码 图形或 UI 应用程序的设计模式相同还是不同 等待答复 谢谢 就我个人而言 我发现 iPhone 和 iPad 之间唯一真正的
  • 如何在oracle 11g SQL中计算两个日期之间的差异

    当我尝试使用 datediff 函数计算日期差时 它显示该无效标识符 SELECT DATEDIFF day 2008 08 05 2008 06 05 AS DiffDate from da static trade Error inva
  • 如何使用后期绑定访问 Microsoft Word 现有实例

    我正在用 C 开发一些代码 我将在其中与 Microsoft Word 进行交互 我希望能够选择重新使用现有实例或作为创建新实例的替代方案 请记住 我想使用 LATE BINDING 来完成所有这些 可以肯定地说 我已经弄清楚如何在创建新实
  • 我可以像在 C++ 中那样在 R 中拥有多个独立的随机数生成器吗?

    我有许多独立的随机过程 比如到达过程 需要我生成随机数 我想对每个进程使用通用随机数 以便在控制这些策略时比较不同策略的执行情况 我希望进程 A 由生成器 A 控制 使用种子 A 我希望进程 B 由生成器 B 控制 使用种子 B 等等 这可
  • ASP.NET Core 中的 HttpRequest.Path 和 HttpRequest.PathBase 有什么区别?

    详细信息如下 https learn microsoft com en us dotnet api microsoft aspnetcore http httprequest view aspnetcore 3 0 https learn
  • 如何检测IIS Express版本?

    我发现我们的 ASP NET 应用程序在 IIS Express 中的不同计算机上运行方式不同 全部都有 VS 2012 Net 4 5 和集成模式 但有些有 VS 2012 Update 1 有些则没有 如何找到 IIS Express
  • 查找一个字段大于另一字段的行

    我的 SQL 有点生疏了 我无法找到一种方法来检索一个值大于另一个值的行 例如 我有以下行 ROWID 1 CreatedAt 2013 08 03 10 10 23 344 UpdatedAt 2013 08 03 11 10 23 34
  • 对 ArangoDB 文档集合进行重复数据删除

    我确信有一种简单快捷的方法可以做到这一点 但它却让我无法理解 我有一个包含一些重复记录的大型数据集 我想删除重复项 重复项由一个属性唯一标识 但文档的其余部分也应该相同 我尝试以几种不同的方式创建一个仅具有唯一值的新集合 但它们都非常慢 例
  • 自动接受安装 NPX 包 [重复]

    这个问题在这里已经有答案了 运行 NPM 包时npx第一次会出现提示询问是否要下载包 例如 如果您运行命令npx some npm package 您会收到以下提示 Need to install the following package
  • 在 Chrome 扩展内容脚本中共享内存中对象?

    我对 JavaScript 和 Chrome 开发都很陌生 正在尝试创建一个在某些网页中注入内容 CSS 的扩展 很简单 但问题是这样做需要查看本地存储中的大量数据 根据我到目前为止所读到的内容 正确的方法是 读取所需数据 JSON 序列化
  • 无法使用 Rust 在 VSCode-LLDB 中创建条件断点

    我正在使用 LLDB 在 VS Code 中调试 Rust 程序 The 表达式文档 https github com vadimcn vscode lldb blob master MANUAL md expressions说有一个程序变
  • 联合类型上不存在 Typescript 属性

    这是我遇到过几次的情况 看起来应该相当简单 但我找不到不将类型设置为任何的解决方案 函数采用两个不同对象之一作为参数 检查已接收到哪个对象 并返回相应的字段 这是问题的简化版本 但问题是这两个对象只能通过它们的属性 没有重叠 来区分 并且我
  • 使用自动布局指定 UICollectionView 中单元格的一维

    在 iOS 8 中UICollectionViewFlowLayout支持根据单元格自身的内容大小自动调整单元格大小 这会根据单元格的内容调整单元格的宽度和高度 是否可以为所有单元格的宽度 或高度 指定固定值并允许调整其他尺寸的大小 举一个
  • Python 找不到 Brownie 文件

    我正在关注 Solidity 和 Python 教程 仅供参考 我正处于已安装 Python 和 Brownie 并通过 VSCode 运行的阶段 但在询问 Brownie 的版本时收到以下通知 brownie version INFO C
  • 如何迁移到新的 SwiftUI 应用协议?

    我正在开发一个 SwiftUI 应用程序 该应用程序仍然具有场景 应用程序委托文件 并希望将其迁移到新的 SwiftUI 应用程序协议 这只是删除场景 应用程序委托文件 然后将我的 ContentView 在我的例子中为初始视图 添加到 m
  • 如何在 Visual Studio Code 中调试之前自动运行构建任务?

    在 VS Code 中 我必须先运行构建任务 然后开始调试 而在 CLion 中 我只需单击 调试 然后它会在必要时自动构建并开始调试 有没有办法在 VS Code 中自动执行此操作 将构建任务添加到 Launch Json 您正在寻找的可