Open afuersch opened 8 months ago
We're seeing this "break" a number of our codebases that use code behind files (.razor.cs
) - with dotnet format
locally producing very strange results (removing chunks of code and complaining about not having auto fixes) and matching failures in CI (where we run with dotnet format --verify-no-changes
) after upgrading to 8.0.203
:
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.203
Workaround for us has been an .editorconfig
file in the affected project folder:
root = false
[*.razor.cs]
# These rules appear to be broken for dotnet format after the .NET 8.0.3 upgrade (8.0.203).
# So we're disabling them for now and hopefully they can be re-enabled in time.
dotnet_diagnostic.CA1822.severity = suggestion
dotnet_diagnostic.CA1823.severity = suggestion
dotnet_diagnostic.IDE0044.severity = suggestion
dotnet_diagnostic.IDE0051.severity = suggestion
dotnet_diagnostic.IDE0052.severity = suggestion
dotnet_diagnostic.IDE0060.severity = none
This feels like a pretty big regression. 😞
I completely agree. This regression is quite concerning as it significantly impacts our workflow. Spending time dealing with these issues is slowing us down considerably and affecting our productivity. Hopefully, this will be resolved quickly so we can get back to a stable and efficient development environment.
Are there any plans to investigate the issue? It is still untriaged and broken.
dotnet format is completely unusable for Blazor right now
This is a very severe regression. I am very surprised this hasn't even been investigated yet. A formatter breaking code is about as severe as a regression can get.
We're seeing this "break" a number of our codebases that use code behind files (
.razor.cs
) - withdotnet format
locally producing very strange results (removing chunks of code and complaining about not having auto fixes) and matching failures in CI (where we run withdotnet format --verify-no-changes
) after upgrading to8.0.203
:- uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.203
Workaround for us has been an
.editorconfig
file in the affected project folder:root = false [*.razor.cs] # These rules appear to be broken for dotnet format after the .NET 8.0.3 upgrade (8.0.203). # So we're disabling them for now and hopefully they can be re-enabled in time. dotnet_diagnostic.CA1822.severity = suggestion dotnet_diagnostic.CA1823.severity = suggestion dotnet_diagnostic.IDE0044.severity = suggestion dotnet_diagnostic.IDE0051.severity = suggestion dotnet_diagnostic.IDE0052.severity = suggestion dotnet_diagnostic.IDE0060.severity = none
This feels like a pretty big regression. 😞
Thank you so much for the workaround. Very much appreaciated 🙌 . I just needed to add S1144
, S2326
and S3459
because I use Sonarlint.
@jaredpar Do you think the culprit is dotnet format
, or is this an issue with Razor tooling?
Instinct is this is a dotnet format
issue.
Are there any updates?
Since dotnet format has moved to the dotnet SDK repository I'll recreate the issue here to hope for more feedback.
Since the .NET SDK update to version
8.0.200
it seems that the format tool doesn't link the Razor pages with their code behind files anymore.We use code behind files
*.razor.cs
for our Razor components. Using the format tool now leads to aIDE0051
unused private member warning. Looks like the Razor code does not exist for the tool.I've created a repository with the sample Blazor WASM application and moved the C# code of
Counter.razor
andWeather.razor
to a code-behind file to demonstrate the issue.E.g. the verify no style changes command brings up
IDE0051
error and says that the Click event handler defined in the code behind file is unused.Running
dotnet format
formats theCounter.razor.cs
file and removes theIncrementCount()
method.The automatically removed method leads to a failed build.
Environment
.NET
dotnet format