VS Code调试PowerShell时preLaunchTask提示找不到任务如何解决
问题根因
你将启动配置写在了.code-workspace工作区根配置中,但任务配置放在了文件夹级的.vscode/tasks.json下,VS Code从工作区级的启动配置触发preLaunchTask时,默认优先检索工作区配置内定义的任务,不会自动向下匹配子文件夹级的tasks.json配置,因此会报找不到对应任务的错误。
可行解决方案
方案1:将任务配置同步到工作区文件(最稳妥,无兼容问题)
直接把tasks配置挪到workspace.code-workspace里,新增tasks字段和launch平级即可,修改后的workspace.code-workspace内容如下:
{ "folders": [ { "path": "." } ], "settings": {}, "launch": { "version": "0.2.0", "configurations": [ { "type": "PowerShell", "request": "launch", "name": "Current File", "script": "${file}", "preLaunchTask": "${defaultBuildTask}" } ] }, "tasks": { "version": "2.0.0", "tasks": [ { "label": "import-module", "detail": "Imports the module locally for testing individual scripts that would require it without having logic in each script.", "type": "shell", "command": "${workspaceFolder}\\.vscode\\install-module-locally.ps1", "group": { "kind": "build", "isDefault": true } } ] } }
修改后删除原来的.vscode/tasks.json,重启VS Code重新加载工作区后按F5即可正常触发前置导入任务。
方案2:保留tasks.json,显式指定任务所属作用域
如果你不想把任务配置移到工作区文件,可以修改启动配置里的preLaunchTask值,显式指定任务所属的工作区文件夹作用域:假设你的工作区文件名为workspace.code-workspace,则将preLaunchTask修改为如下格式即可:
"preLaunchTask": "import-module (workspace)"
注意括号内的名称要和VS Code左侧资源管理器顶部显示的工作区根文件夹名称完全一致,该方案的缺点是重命名工作区文件后需要同步修改配置,稳定性低于方案1。
内容的提问来源于stack exchange,提问作者Lucas
相关产品推荐
相关产品推荐

