dotnet / dotnet/format

IDE0051 format issues with Razor code behind files with SDK 8.0.200

Open
#2,127 4 comments 4 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
1.9k
Forks
173
Avg merge
10d 13h
Merged PRs (30d)
1

Description

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 a `IDE0051` 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](https://github.com/afuersch/blazor-net8-dotnet-format) and moved the C# code of `Counter.razor` and `Weather.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.
```
D:\source\github\blazor-net8-dotnet-format> .\format-verify.cmd
D:\source\github\blazor-net8-dotnet-format>dotnet format BlazorApp.sln style --verify-no-changes

D:\source\github\blazor-net8-dotnet-format\BlazorApp\Pages\Counter.razor.cs(9,18): warning IDE0051: Private member 'Counter.IncrementCount' is unused [D:\source\github\blazor-net8-dotnet-format\BlazorApp\BlazorApp.csproj]
```

Running `dotnet format` formats the `Counter.razor.cs` file and removes the `IncrementCount()` method.

```
D:\source\github\blazor-net8-dotnet-format>dotnet format BlazorApp.sln -v normal
Formatting code files in workspace 'D:\source\github\blazor-net8-dotnet-format\BlazorApp.sln'.
Formatted code file 'D:\source\github\blazor-net8-dotnet-format\BlazorApp\Pages\Counter.razor.cs'.
Format complete in 5646ms.
```

The automatically removed method leads to a failed build.

```
D:\source\github\blazor-net8-dotnet-format>dotnet build BlazorApp.sln
MSBuild version 17.9.4+90725d08d for .NET
Determining projects to restore...
All projects are up-to-date for restore.
D:\source\github\blazor-net8-dotnet-format\BlazorApp\Pages\Counter.razor(9,44): error CS0103: The name 'IncrementCount' does not exist in the current context [D:\
source\github\blazor-net8-dotnet-format\BlazorApp\BlazorApp.csproj]

Build FAILED.

D:\source\github\blazor-net8-dotnet-format\BlazorApp\Pages\Counter.razor(9,44): error CS0103: The name 'IncrementCount' does not exist in the current context [D:\
source\github\blazor-net8-dotnet-format\BlazorApp\BlazorApp.csproj]
0 Warning(s)
1 Error(s)

Time Elapsed 00:00:04.26
```

## Environment

### .NET

```
> dotnet --info
.NET SDK:
Version: 8.0.200
Commit: 438cab6a9d
Workload version: 8.0.200-manifests.e575128c

Runtime Environment:
OS Name: Windows
OS Version: 10.0.22631
OS Platform: Windows
RID: win-x64
Base Path: C:\Program Files\dotnet\sdk\8.0.200\

.NET workloads installed:
There are no installed workloads to display.

Host:
Version: 8.0.2
Architecture: x64
Commit: 1381d5ebd2

.NET SDKs installed:
7.0.313 [C:\Program Files\dotnet\sdk]
7.0.406 [C:\Program Files\dotnet\sdk]
8.0.102 [C:\Program Files\dotnet\sdk]
8.0.200 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.27 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.16 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.27 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.16 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.27 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.16 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
x86 [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:
Not set

global.json file:
Not found

```

### dotnet format

```sh
> dotnet format --version
8.0.453106+2651752953c0d41c8c7b8d661cf2237151af33d0
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.