VS Code中$msCompile问题匹配器无法识别相对文件路径
解决VS Code中dotnet build相对路径导致$msCompile匹配器失效的问题
你遇到的这个问题很常见——dotnet build默认输出相对文件路径,但$msCompile问题匹配器是为MSBuild的绝对路径输出设计的,所以没法正确解析这些路径,导致VS Code无法定位到编译错误的具体文件位置。
这里有两种简单的解决方法:
方法1:让dotnet build输出绝对路径
修改tasks.json中的args,添加/property:GenerateFullPaths=true参数,强制dotnet build输出绝对路径,这样$msCompile就能正常识别路径了:
{ "version": "2.0.0", "tasks": [ { "label": "build", "command": "dotnet", "type": "process", "group": { "kind": "build", "isDefault": true }, "args": [ "build", "${workspaceFolder}", "/property:GenerateFullPaths=true" ], "problemMatcher": "$msCompile" } ] }
方法2:改用适配dotnet CLI的问题匹配器
VS Code提供了专门针对dotnet CLI输出的$dotnetCompile问题匹配器,它能直接识别相对路径,不需要修改build参数,只需要替换problemMatcher的值即可:
{ "version": "2.0.0", "tasks": [ { "label": "build", "command": "dotnet", "type": "process", "group": { "kind": "build", "isDefault": true }, "args": [ "build", "${workspaceFolder}" ], "problemMatcher": "$dotnetCompile" } ] }
两种方法都能解决你的问题:第一种保留了$msCompile的兼容性,第二种更简洁直接,专门适配dotnet工具链的输出格式,你可以根据自己的偏好选择。
内容的提问来源于stack exchange,提问作者Davide Icardi
相关产品推荐
相关产品推荐

