You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio+CMake+WSL2:如何在WSL中执行tasks.vs.json任务

在Visual Studio 2022中让tasks.vs.json任务在WSL内执行的方案

问题场景

我在Visual Studio 2022(非VS Code)中维护一个面向Linux的CMake项目,通过CMakePresets.json可以正常在WSL中构建和调试,但始终无法让tasks.vs.json中的任务在WSL环境内执行——VS默认会在Windows环境运行这些任务。我尝试过使用"remote"任务类型,但不知道该如何指定对应的WSL机器。

可行解决方案

我找到一种通过wsl.exe命令行选项--和WSLENV环境变量实现的方案,配置示例如下:

{
  "taskLabel": "task-test",
  "appliesTo": "/",
  "contextType": "custom",
  "type": "launch",
  "command": "C:\\Windows\\System32\\wsl.exe",
  "env": {
    "MY_TASK_VAR": "${cmake.CMAKE_HOME_DIRECTORY}",
    "WSLENV": "USERPROFILE/up:MY_TASK_VAR/u"
  },
  "args": [
    "--",
    "printenv"
  ]
}

现有局限

目前可用的宏选项非常有限,比如无法直接复用CMakePresets.json中定义的变量。

参考文档(核心内容翻译)

  • 《CMake预设在Visual Studio中的使用》:讲解launch.vs.json与tasks.vs.json中的变量替换规则
  • 《Visual Studio中自定义构建和调试任务》:介绍tasks.vs.json支持的宏列表

内容的提问来源于stack exchange,提问作者FKDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:50:38