首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在vscode工作区文件夹之间共享任务?

如何在vscode工作区文件夹之间共享任务?
EN

Stack Overflow用户
提问于 2018-07-30 18:57:55
回答 3查看 3.8K关注 0票数 12

我的VSCode项目是多根工作区。也就是说,我有多个工作区,每个工作空间位于不同的目录中,每个工作空间都有一个.vscode文件夹。

我试图通过构建任务在每个模块之间构建一个具有依赖关系的工作区。

我尝试为一个任务设置dependsOn参数,但是它会产生以下错误:

Couldn't resolve dependent task 'build FOO' in workspace folder 'BAR' (在这里,BAR构建任务依赖于FOO)

有什么更好的方法来达到我的目标吗?

EN

回答 3

Stack Overflow用户

发布于 2019-11-14 09:38:36

您可以在您的tasks文件中有一个.code-workspace部分。在那里,您可以创建一个类似于"Build“的任务,并定义dependsOn任务。但是,您也不能引用工作区文件夹中的构建任务(在我看来,这是一个合理的特性,我认为他们应该在某个时候实现它)。我的解决办法是将相关的生成任务从子任务文件复制到.code-workspace文件中,并在我的"Build“任务中引用它们。

示例.code-workspace

代码语言:javascript
运行
复制
{
    "folders": [
        {
            "path": "proj-A"
        },
        {
            "path": "proj-B"
        }
    ],
    "tasks": {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "shell",
                "label": "Build A",
                "command": "make",
                "args": ["-j4"],
                "options": {
                    "cwd": "${workspaceFolder}/../proj-A",
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": "build",
            },
            {
                "type": "shell",
                "label": "Build B",
                "command": "make",
                "args": ["-j4"],
                "options": {
                    "cwd": "${workspaceFolder}/../proj-B",
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": "build",
            },
            {
                "type": "shell",
                "label": "Build all",
                "command": "echo",
                "args": ["Building everything"],
                "options": {},
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "dependsOrder":"sequence",
                "dependsOn": ["Build A", "Build B"]
            },
        ]
    }
}

注意各个构建任务中的cwd选项。${workspaceFolder}似乎设置为"folders"部分中的第一条路径。还可以将cwd设置为绝对路径。

这有点麻烦,而且一个人不得不复制构建任务的事实并不漂亮,但它现在起作用了,一旦可能引用子任务文件的任务,它就可以很容易地适应。

票数 10
EN

Stack Overflow用户

发布于 2020-02-03 17:11:15

检查新的用户级任务是否可以帮助共享任务。

现在在用户设置级别上支持tasks.json。 可以运行Tasks: Open User Tasks命令来创建用户级别的任务。 这些任务将在所有文件夹和工作区中可用,。 这里只支持shell和流程任务类型。

票数 1
EN

Stack Overflow用户

发布于 2022-10-06 10:59:51

多文件夹工作区的文档展示了如何做到这一点,而不是仅仅添加带有任务名称的字符串,而是添加如下所示的对象:

代码语言:javascript
运行
复制
{
    "name": "foo",
    "folder": "bar"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51600546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档