VS Code:调试驻留在子文件夹中的项目 .NET Core 项目

sev*_*rin 4 c# .net-core visual-studio-code

将我的 .NET Core 项目移至解决方案中的子文件夹后,我无法再使用 VS Code 对其进行调试。

如果我移动tasks.jsonlaunch.json项目文件夹并打开 VS Code,我就可以进行调试,但我希望能够在 VS Code 中打开整个解决方案。

我收到的错误消息是这样的:

MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.

该错误似乎表明我的任务运行程序无法再找到我的项目,因此我尝试将其添加到tasks.json

{    
    "version": "0.1.0",
    "command": "dotnet",
    "isShellCommand": true,
    "args": [],
    "tasks": [
        {
            "taskName": "build",
            "args": [ ],
            "isBuildCommand": true,
            "showOutput": "silent",
            "problemMatcher": "$msCompile"
        }
    ],

    // My addition
    "options": {
        "cwd": "${workspaceRoot}/myProjectFolder"
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做我可以启动任务,但随后出现以下错误:

Exception thrown: 'System.IO.FileNotFoundException' in 
Microsoft.Extensions.Configuration.FileExtensions.dll
Run Code Online (Sandbox Code Playgroud)

如何配置 .NET Core 调试器才能运行驻留在子文件夹中的项目?

小智 6

问题是你的tasks.json,你应该将你的子文件夹复制.vscode/tasks.json到父目录中。

当您tasks.json从父目录创建时,它会tasks.json像您的tasks.json示例一样。

但是如果你复制tasks.json子文件夹中创建的内容它应该是这样的:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/<change to your subfolder>/<your project>.csproj"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以有一个.csproj文件,它在错误中说。