首页 > 解决方案 > VS Code 开发容器,在根文件夹上方具有相关文件夹

问题描述

我正在为与容器扩展相关的 VS Code 设置而苦苦挣扎。

我的项目结构在同一级别有一个项目文件夹和多个库(即库不是我的项目文件夹的子文件夹)。关键是我想将所有配置文件保存在我的项目文件夹中,因此如何启动项目的信息由项目进行版本控制。

如果我workspace按如下方式指定文件(使用相对路径)并打开工作区文件,则本地工作正常。

{
    "folders": [
        {
            "path": "."
        },
        {
            "path": "../library1"
        },
        {
            "path": "../library2"
        },
    ]
}

但是,当我尝试将其引入我的开发容器时,我收到错误消息:

The workspace cannot be opened in a container. Folder c:\..\library1 is not a subfolder of shared root folder c:\..\project. 

我可以将项目定义(和devcontainer.json文件)向上拉一级,但它们不在我的项目文件夹的源代码控制之下。

任何想法如何解决这个问题?

标签: visual-studio-codevscode-remote

解决方案


这似乎是一个设计限制。即使您相应地设置了容器的工作区根,似乎仍然无法引用包含工作区定义的文件夹之外的工作区文件夹。

https://github.com/microsoft/vscode-remote-release/issues/387

首先,我们可以支持一个打开工作区命令,它相当于执行“在容器中打开文件夹”然后是“打开工作区”,但不能解决这两个限制。具体来说,它将:

在与 .codeworkspace 文件相同的文件夹中查找 .devcontainer/devcontainer.json 或 .devcontainer.json 文件。将此文件夹挂载到容器中并打开工作区。.codeworkspace 文件只能引用子文件夹s。


推荐阅读