无法解析'${workspaceFolder}'。请在Visual Studio Code中打开一个文件夹。

17
想知道你是否能帮忙。从我的研究来看,确定解决方案真的很具有挑战性。
两周前我下载了Visual Studio Code,但在尝试调试文件时遇到了一个错误。文件似乎打开了,但一旦我运行调试器,它就会显示如下:

enter image description here

变量${workspaceFolder}无法解析。请打开一个文件夹。
似乎找不到或复制类似的解决方案。我还尝试重新安装Visual Studio Code(这并不容易)。我至少想了解问题及其来源。
该文件是一个我正在工作的.js文件;运行一个简单的函数。它不打算与更大的工作区/程序一起运行。

2
你必须在问题中公开你的launch.json文件。 - Lex Li
8个回答

16

在VScode中,转到文件-> 添加文件夹到工作区,然后选择程序文件所在的文件夹。


所以在我这样做之后,我可以通过编辑程序并使用net5.0核心等来解决VSCODE的第二部分问题,具体方法请参考此帖子https://dev59.com/r7noa4cB1Zd3GeqPQnP_。 - Michael Seifert
1
“程序文件”是什么意思?指的是.exe文件吗? - Julien

2

我知道这个问题已经很旧了,答案可能已经正确,但在此评论发布时的 2021年6月30日,对于我的 v1.57.1 版本的 vscode,没有一个答案适用于我。

我不得不在我的 *.code-workspace 文件中将 ${workspaceFolder} 替换为 ${workspaceFolder:my-folder-name}

参考资料:每个工作区文件夹范围内的变量


2

如果您正在使用最新的Visual Studio 1.44,请确保升级到1.44.2版本。

microsoft/vscode issue 94725问题已得到解决。
它包含了相同的错误信息:

https://user-images.githubusercontent.com/9964210/78838126-65c76d80-79ed-11ea-8572-a092f1576dbc.png

After some investigation the problem is the following for the workspace configuration our debug extensions appends the following attribute

__workspaceFolder:'${workspaceFolder}'

And the configuration resolver properly tries to resolve this and complains because the scope of the folder is not specified.
In a multi root workspace scope has to be specified, otherwise the resolver does not know against which folder to resolve the variables.

Proposed fix: the node extension which adds this attribute should scope it if it sees that we are in a multi root folder.
So instead of ${workspaceFolder} use ${FOLDER_NAME:workspaceFolder}.

这已在提交的ae97613中得到修复


@Timo 好的。您能否提出一个单独的问题,说明您使用的操作系统和VSCode版本? - VonC
好的,我在删除了 launch.json 后遇到了错误。我只想使用 workspace.json 并在那里设置 launch 配置。我在 launch.json 中没有 zshdb 的配置条目,但在 workspace.json 中有。 - Timo
新情况:如果我将配置放在code/user文件夹下的launch.json中,则在调试选择中会出现一个bash-deb (User)并启动它。然后它就可以正常工作了。如果我使用相同的配置在workspace.json中启动bash-deb(workspace),则会出现无法确定工作区文件夹。所以这可能是一个新问题,因为它应该可以使用(workspace) - Timo
另一个发现是,在 PythonPowerShell 中,调试可以在 (工作区)(用户) 调试模式下运行。 - Timo
新问题 - Timo
显示剩余4条评论

1
请将您的*.code-workspace文件中的${workspaceFolder}替换为${FOLDER_NAME:workspaceFolder}。(来自[这里][1])
顺便提一下,${workspaceRoot}也可以用${FOLDER_NAME:workspaceRoot}替换。
还有其他文件夹变量可以使用FOLDER_NAME:前缀修复吗?到目前为止,我的工作区没有使用它们。
Version: 1.44.2上对我有效。

根据最新的更新,它是${workspaceFolder:<FolderName>}来源 - rehman_00001

0
在我的情况下,我有一个多根工作区,并且能够通过在工作区配置中明确定义java.project.sourcePaths来解决这个问题,使其如下所示:
{
    "folders": [
        {
            "path": "folderA"
        },
        {
            "path": "folderB"
        },
        {
            "path": "folderC"
        }
    ],
    "settings": {
        "java.project.sourcePaths": [
            "${workspaceFolder}/folderA"
        ]
    }
}

-1

我最近遇到了这个问题,也读了上面的答案,但作为一个初学者,我无法解决它。在我的答案中,我没有确切的做法,但我会展示对我有效的方法。

  1. 进入资源管理器,你会发现没有添加文件夹。
  2. 浏览 .vscode 文件夹并选择它。
  3. 问题解决了 {至少对我来说是这样的。它(.vscode)里面有一个.json扩展名的文件}。

-1
我曾经遇到过同样的问题,但我是这样解决的: 1-以管理员身份打开VS Code 2-打开表格 3-调试没有问题 :)

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接