dotnet / format

Home for the dotnet-format command

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IDE0051 format issues with Razor code behind files with SDK 8.0.200

afuersch opened this issue · comments

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 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

> dotnet format --version
8.0.453106+2651752953c0d41c8c7b8d661cf2237151af33d0

We have the same problem with dotnet format :(

same problem, workaround is to reference component with its full namespace instead of the using keyword. Hope this problem will be fixed soon.