vscode-csharp: Errors are duplicated in output window
Environment data
dotnet --info
output:
.NET Command Line Tools (1.0.0-rc4-004769)
Product Information:
Version: 1.0.0-rc4-004769
Commit SHA-1 hash: 9cf4e9d1d0
Runtime Environment:
OS Name: Windows
OS Version: 10.0.14393
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\1.0.0-rc4-004769
VS Code version: 1.9.0 C# Extension version: 1.6.2
Steps to reproduce
- dotnet new console
- dotnet restore
- Edit program.cs and make a deliberate error
- code .
- Ctrl+Shift+B
- Configure build task -> .NET Core
- Ctrl+Shift+B again
- Look at output window
Expected behavior
Each error appears only once in output window
Actual behavior
Errors are duplicated.
Workaround
Edit tasks.json to disable the summary:
"tasks": [
{
"taskName": "build",
"args": [
"${workspaceRoot}\\qqq.csproj",
"/clp:NoSummary"
],
"isBuildCommand": true,
"problemMatcher": "$msCompile"
}
]
Notes
Visual Studio arranges not to duplicate errors in its output windows, but VS Code does not.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 1
- Comments: 24 (4 by maintainers)
FWIW: It’s now 2021 and I still get errors duplicated between Ominsharp and the build task’s
$msCompile
problem matcher. I’ve had to take drastic measures and just flat out cut the problem matcher from thetask.json
configuration altogether, as nothing else seems to work.I’d rather lose compile-time errors than real-time reporting and the compile-time errors are a major annoyance anyway, because they stick around long after the file has been modified and require that the build task actually be re-run to clear out.
I am still experiencing the same problem after I followed the ‘Steps to reproduce’ of @nguerrera. I am on the latest version of vscode (1.38.1) and on the latest update on the C# extension (1.21.2), but I still have the errors duplicated. When I fix the deliberate error, the first line in the problems pane disappears almost immediately, but the second disappears only after I build the project. Is this a normal behaviour or maybe I have something misconfigured on the OmniSharp extension?
Here is some information about my setup:
dotnet --info
vscode version
Extension version
task.json
Hi, this bug is still present on my system. Current version is 1.40:
Similar to the person above, my build task includes the
No Summary
parameter:Any news on this? The problem is still present in the latest release of VSCode and the extensions.
I’m also getting duplicate warnings like everyone. @akshita31 please reopen, as this issue is not solved by the “-clp:NoSummary”.
@xcap2000
For some situations I agree but right now I’m doing a large refactoring and I just want to get a particular sub-project to build before moving onto the next. The Omnisharp generated errors are saturating the problem panel with issues that I’m not ready to deal with them yet. I can work around it by ignoring those projects with omnisharp.json, but that’s painful with a lot of sub-projects.
Another situation: some of my projects have platform independent versions. eg: subproject.win.csproj, subproject.osx.csproj and subproject.gtk.csproj. If I switch from working on one platform to another (for the purposes of getting it to build I’ll work on all three on under Windows), I have to edit omnisharp.json to ignore the projects that aren’t applicable for the current platform. If I don’t do that Omnisharp freaks out with out thousands of errors - making the problems panel completely useless.
To explain what’s happening here. With these platform specific projects I’ll have a set common of files and a set of per-platform files. The platform specific files will be in sub-folders “PlatformWin”, “PlatformOsx” etc… and each are a partial class providing the platform implementation part of the common class file. The .win.csproj file is configured to only include PlatformWin, similar for the other platforms. Omnisharp really doesn’t like this and generates 3 errors for every per-platform partial method that its multiply defined…
Granted, I might be in a bit of a unique situation with the above but being able to either filter the problems panel by problem owner, or being able to configure Omnisharp to stop putting stuff in the problem panel would help immensely.
Another way of saying all of the above - by being able to limit the problems panel to just stuff from the current build it can react to the selected build task configuration and let me focus on what I’m working on.
@akshita31
The cause of this problem is that the build task and the roslyn code analysis are both reporting the same issue. I’ve lodged a feature request against VS Code for the ability to filter the Problems panel by the problem owner (ie: “csharp” vs “msCompile”).
https://github.com/microsoft/vscode/issues/98633
In the meantime, is there anyway to suppress Omnisharp from generating these problem reports? I just want to see the actual build errors.
@akshita31 this appears to still be broken in latest vscode/addin even with a basic setup and is not a great out of the box experience.
tasks.json is the automatic one created by VS Code:
To add to this, my experience is slightly off. I get the build error correctly once. When I click on the problems view, I click the problem, get the “Unable to open …” popup and then a duplicate is created. I am able to click to duplicate and it takes me to the file in the workspace.
The initial view that shows the unable to open popup has a source of “/” beside the file name. When the duplicate that works is created, the correct subdirectory of where that file exists is shown beside the file name.
I think we want to fix dotnet/cli#5607 and then pass /clp:NoSummary and keep using build.