VS Code $msCompile ProblemMatcher 不适用于相对文件路径

Dav*_*rdi 2 .net visual-studio-code dotnet-cli vscode-problem-matcher

我需要使用 Visual Studio Code 编译 .NET 解决方案。我的任务内部tasks.json声明如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "args": [
                "build",
                "${workspaceFolder}"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在按Ctrl+B我可以成功编译我的整个解决方案。不幸的是dotnet build,似乎输出相对文件路径,并且从文档来看,问题$msCompile匹配器仅适用于绝对路径。其效果是,当出现错误时,在“问题”面板中单击它会产生错误Unable to open XYZ.cs: File not found

如何正确配置dotnet buildProblemMatcher 使其工作?

Dav*_*rdi 5

一个简单的解决方案是dotnet build使用/property:GenerateFullPaths=true参数生成绝对文件路径。这是一个工作任务定义:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "args": [
                "build",
                "${workspaceFolder}",
                "/property:GenerateFullPaths=true"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)