dotnet / dotnet/roslyn

IDE0130 warning "Namespace 'Foo.Bar' does not match folder structure, expected 'Foo_xyz_wpftmp.Bar'" when EnforceCodeStyleInBuild is enabled

Open
#74,758 3 comments 0 reactions 0 assignees View on GitHub
Area-IDE Concept-Design Debt IDE-CodeStyle
Dominant language
C#
Stars
20.7k
Forks
4.3k
PR merge metrics
PR metrics pending

Description

**Version Used**:
```
➜ dotnet --info
.NET SDK:
Version: 8.0.400
Commit: 36fe6dda56
Workload version: 8.0.400-manifests.56cd0383
MSBuild version: 17.11.3+0c8610977

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

.NET workloads installed:
Configured to use loose manifests when installing new manifests.
[wasm-tools]
Installation Source: VS 17.11.35208.52
Manifest Version: 8.0.8/8.0.100
Manifest Path: C:\Program Files\dotnet\sdk-manifests\8.0.100\microsoft.net.workload.mono.toolchain.current\8.0.8\WorkloadManifest.json
Install Type: FileBased

Host:
Version: 8.0.8
Architecture: x64
Commit: 08338fcaa5

.NET SDKs installed:
8.0.206 [C:\Program Files\dotnet\sdk]
8.0.304 [C:\Program Files\dotnet\sdk]
8.0.400 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.33 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.33 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.33 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.6 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.8 [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
```

**Steps to Reproduce**:

I have created a sample repo: https://github.com/lennartb-/WpftmpErrorTest

Reproduces with both VS 17.11 and from CLI

I have narrowed it down to `true` in the csproj. If it's set to false (or removed), the warning disappears

**Diagnostic Id**: IDE0130

**Expected Behavior**:

No warnings on build. The analyzer itself is OK, but it seems it shouldn't report with this `_wpftmp` inserted.

**Actual Behavior**:

A warning is emitted:

```
C:\foo\WpftmpErrorTest\NewFolder\Class1.cs(1,11,1,36): warning IDE0130: Namespace "WpftmpErrorTest.NewFolder" does not match folder structure, expected "WpftmpErrorTest_x5hfygm1_wpftmp.NewFolder" (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0130)
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the warning from the linked WpftmpErrorTest sample repository using the .csproj setting EnforceCodeStyleInBuild=true, first with dotnet build and then in Visual Studio. Trace how the IDE0130 analyzer receives the generated _wpftmp path; done means the sample builds without the false namespace warning while the analyzer still reports genuine mismatches.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
compilers, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.