在多根工作区中动态设置项目的根目录

问题描述 投票:0回答:1

我有以下文件夹结构:

.
── my_project
   ├── .vscode
   │     └── my_project.code-workspace
   └── shared_stuff
        └── .vscode
            ├── launch.json
            └── tasks.json

shared_stuff
文件夹包含调试器设置,对于 项目数量。 在
my_project/shared_stuff/.vscode/launch.json
文件中,我有以下设置:

"program": "/some_path/my_project/build/Debug/bin/my_project",
"cwd": "/some_path/my_project"

我的问题是我想参数化项目的根和 可执行文件名称(在上面的示例中

/some_path/my_project
my_project
),独立于项目,从而获得如下内容:

"program": "${my_project_path}/build/Debug/bin/${my_project_exec}",
"cwd": "${my_project_path}"

关于 exec 我可以添加以下内容

./my_project/.vscode/my_project.code-workspace

 "settings": {
        "myProject.exec": "my_project"
    }

并使用

"program": "${my_project_path}/build/Debug/bin/${config:myProject.exec}",

因为 exec 名称始终与项目名称相同。

但是,我不知道如何解决

my_project_path
。硬编码不是 一个好主意,因为不同的用户可能有不同的
my_project
路径 地点。
我注意到变量
${workspaceFolder}
指的是
shared_stuff
文件夹。 尽管如此,
shared_stuff
始终是项目的子文件夹,因此原则上引用
${workspaceFolder}
的上层文件夹就足够了,但更通用的解决方案会更好。

visual-studio-code vscode-debugger
1个回答
0
投票

我不知道您是否想通过参数化 launch.json 中的任何非预设值来将值从外部传递到内部。在我看来,我认为这不是一个好主意,而是对本地路径进行硬编码。我的项目遇到了与您这个问题相同的情况,最后我发现执行不同调试版本的最佳方法是之前在 launch.json 中设置这些不同的调试配置信息并选择如下图所示的选项。在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.