2dc0129a11
IDE0065 ("using directives placement") is now fully suppressed in all build and IDE environments via .editorconfig and NoWarn in project files. Added HOW_TO_IGNORE_IDE0065.md for documentation. Refactored PhotoProvider.cs to use namespace-scoped usings and a primary constructor. Updated code analysis assemblies and project cache files to reflect these changes.
178 lines
4.5 KiB
Markdown
178 lines
4.5 KiB
Markdown
# How to Ignore IDE0065 Error Message
|
|
|
|
## What is IDE0065?
|
|
|
|
**IDE0065**: "Using directives must be placed outside of a namespace declaration"
|
|
|
|
This is a code style warning about where `using` statements should be placed - inside or outside the namespace.
|
|
|
|
## Solutions Implemented ✅
|
|
|
|
### Solution 1: .editorconfig (Applied) ✅
|
|
|
|
Updated `.editorconfig` to completely disable IDE0065:
|
|
|
|
```ini
|
|
# IDE Rules - Suppress non-critical suggestions
|
|
dotnet_diagnostic.IDE0065.severity = none
|
|
```
|
|
|
|
**Severity Levels:**
|
|
- `none` = Completely disabled (doesn't appear anywhere)
|
|
- `silent` = Hidden in IDE, but may show in build
|
|
- `suggestion` = Shows as hint in IDE
|
|
- `warning` = Shows as warning
|
|
- `error` = Blocks build
|
|
|
|
### Solution 2: Project File (Applied) ✅
|
|
|
|
Added to `Emby.Naming.csproj`:
|
|
|
|
```xml
|
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
<NoWarn>$(NoWarn);IDE0065</NoWarn>
|
|
</PropertyGroup>
|
|
```
|
|
|
|
This ensures IDE0065 is completely suppressed during build.
|
|
|
|
## Additional Methods (If Needed)
|
|
|
|
### Method 3: Global Suppression File
|
|
|
|
Create a file `GlobalSuppressions.cs` in your project:
|
|
|
|
```csharp
|
|
// <copyright file="GlobalSuppressions.cs" company="PlaceholderCompany">
|
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
|
// </copyright>
|
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
[assembly: SuppressMessage("Style", "IDE0065:Misplaced using directive", Justification = "Project style preference")]
|
|
```
|
|
|
|
### Method 4: Suppress for All Configurations
|
|
|
|
If you want to suppress IDE0065 for **both Debug and Release**, add this to your `.csproj`:
|
|
|
|
```xml
|
|
<PropertyGroup>
|
|
<NoWarn>$(NoWarn);IDE0065</NoWarn>
|
|
</PropertyGroup>
|
|
```
|
|
|
|
### Method 5: Visual Studio Settings (Local Only)
|
|
|
|
If you only want to hide it in **your IDE** (doesn't affect builds):
|
|
|
|
1. Open Visual Studio
|
|
2. **Tools** → **Options**
|
|
3. **Text Editor** → **C#** → **Code Style** → **Formatting**
|
|
4. Under "Usings", set your preference
|
|
5. Or go to **Options** → **Environment** → **Task List** and filter warnings
|
|
|
|
**Note:** This only affects your local IDE, not team builds.
|
|
|
|
## Verify the Changes
|
|
|
|
### Check in Visual Studio:
|
|
1. Restart Visual Studio (or reload solution)
|
|
2. Build the project
|
|
3. IDE0065 should no longer appear in Error List
|
|
|
|
### Check in Command Line:
|
|
```powershell
|
|
# Clean and rebuild
|
|
dotnet clean Emby.Naming\Emby.Naming.csproj
|
|
dotnet build Emby.Naming\Emby.Naming.csproj
|
|
|
|
# IDE0065 should not appear in output
|
|
```
|
|
|
|
## What the Changes Mean
|
|
|
|
### For Your IDE:
|
|
- ✅ IDE0065 will **not show** in the Error List
|
|
- ✅ No underlines or suggestions in the code editor
|
|
- ✅ Quick Actions (Ctrl+.) won't offer to "fix" using placement
|
|
|
|
### For Builds:
|
|
- ✅ IDE0065 will **not appear** in build output
|
|
- ✅ CI/CD builds won't show this warning
|
|
- ✅ Build logs will be cleaner
|
|
|
|
### For Your Team:
|
|
- ✅ `.editorconfig` is checked into source control
|
|
- ✅ All developers will have the same suppression
|
|
- ✅ Consistent experience across the team
|
|
|
|
## Why Both Methods?
|
|
|
|
We applied **both** methods for maximum coverage:
|
|
|
|
1. **`.editorconfig`** → Suppresses in IDE and most build scenarios
|
|
2. **`<NoWarn>`** → Guarantees suppression during MSBuild/command-line builds
|
|
|
|
This ensures IDE0065 is completely eliminated everywhere!
|
|
|
|
## Other Common IDE Errors to Suppress
|
|
|
|
If you want to suppress other common warnings, add them to `<NoWarn>`:
|
|
|
|
```xml
|
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
<NoWarn>$(NoWarn);IDE0065;IDE0008;IDE0058;SA1309;SA1101</NoWarn>
|
|
</PropertyGroup>
|
|
```
|
|
|
|
**Common Ones:**
|
|
- `IDE0008` = Use explicit type instead of 'var'
|
|
- `IDE0058` = Expression value is never used
|
|
- `IDE0065` = Using directive placement
|
|
- `SA1309` = Field names should not begin with underscore
|
|
- `SA1101` = Prefix local calls with 'this'
|
|
- `SA1200` = Using directives placement (StyleCop version)
|
|
|
|
## Testing
|
|
|
|
After making these changes:
|
|
|
|
```powershell
|
|
# 1. Clean everything
|
|
dotnet clean
|
|
|
|
# 2. Rebuild
|
|
dotnet build Emby.Naming\Emby.Naming.csproj
|
|
|
|
# 3. Check for IDE0065 in output (should be gone!)
|
|
```
|
|
|
|
Expected result: **No IDE0065 warnings** ✅
|
|
|
|
## Rollback (If Needed)
|
|
|
|
If you want to re-enable IDE0065 later:
|
|
|
|
### In .editorconfig:
|
|
```ini
|
|
dotnet_diagnostic.IDE0065.severity = suggestion
|
|
```
|
|
|
|
### In .csproj:
|
|
Remove `IDE0065` from the `<NoWarn>` list.
|
|
|
|
## Summary
|
|
|
|
✅ **Both methods applied!**
|
|
- `.editorconfig` updated: `IDE0065.severity = none`
|
|
- `Emby.Naming.csproj` updated: `<NoWarn>$(NoWarn);IDE0065</NoWarn>`
|
|
|
|
**Result:** IDE0065 is now completely suppressed in:
|
|
- ✅ Visual Studio IDE
|
|
- ✅ Command-line builds
|
|
- ✅ MSBuild
|
|
- ✅ CI/CD pipelines
|
|
|
|
You should no longer see IDE0065 anywhere! 🎉
|