visual-studio-code - 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
文件)向上拉一级,但它们不在我的项目文件夹的源代码控制之下。
任何想法如何解决这个问题?
解决方案
这似乎是一个设计限制。即使您相应地设置了容器的工作区根,似乎仍然无法引用包含工作区定义的文件夹之外的工作区文件夹。
https://github.com/microsoft/vscode-remote-release/issues/387
首先,我们可以支持一个打开工作区命令,它相当于执行“在容器中打开文件夹”然后是“打开工作区”,但不能解决这两个限制。具体来说,它将:
在与 .codeworkspace 文件相同的文件夹中查找 .devcontainer/devcontainer.json 或 .devcontainer.json 文件。将此文件夹挂载到容器中并打开工作区。.codeworkspace 文件只能引用子文件夹s。
推荐阅读
- tensorflow - 神经网络的权重不变
- jquery - 重构jQuery代码3个重复函数
- python - 如何在 python 3.x 的 tkinter 中创建多列列表框小部件?
- javascript - jQuery.verto 不是构造函数
- spring-boot - 属性文件中的 PCF UPS
- node.js - 仅使用一个子进程在节点js中依次运行两个命令
- ruby-on-rails - 如何在 Liquid 模板中使用 ransack 搜索多个模型
- java - 为 SSL 套接字上的每个请求创建新进程会给出“TypeError:无法序列化套接字对象”,但对普通/非 SSL 套接字执行相同操作
- sql - 在 select 语句中将正数转换为负数,反之亦然
- django - python django - 如果再次搜索多行的多列值并且几行不存在,则查询返回空白结果