如何按顺序运行任务?

时间:2020-07-14 15:53:18

标签: visual-studio-code

我想配置一个标记为“先构建然后运行”的任务,该任务将执行特定的构建任务,然后运行可执行文件。我以为dependsOn属性就是我想要的,但事实证明,它可以并行运行任务。

这是 tasks.json 的示例:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "command": "g++ -g ${workspaceFolder}/main.cpp -o ${workspaceFolder}/main.exe",
            "problemMatcher": "$gcc"
        },
        {
            "label": "Run",
            "type": "shell",
            "command": "${workspaceFolder}/main.exe"
        },
        {
            "label": "Build and then Run",
            "type": "shell",
            "dependsOn": [    // <------ important
                "Run",
                "Build"
            ]
        }
    ]
}

将任务放入dependsOn数组中的顺序无关紧要。因为“生成”任务创建可执行文件太晚,所以“运行”任务执行出错。

是否有一些属性或技巧可以使两个任务依次运行?

1 个答案:

答案 0 :(得分:1)

{
   "label": "Build and then Run",
   "type": "shell",
   "dependsOrder": "sequence",    <= `parallel must be the default
   "dependsOn": [
     "Run",
     "Build"
   ]
}

如果您指定“ dependsOrder”:“ sequence”,那么您的任务依赖项 按照它们在dependsOn中列出的顺序执行。任何 在DependOn中使用“ dependsOrder”使用的后台/监视任务: “序列”必须具有跟踪问题的匹配器 “完成”。

对我来说,再加上您的经验,省略选项dependsOn意味着默认情况下任务将并行运行,而不是按顺序运行。