A Step-by-Step Plan to Clean Up Your `.csproj`

A Step-by-Step Plan to Clean Up Your `.csproj`

When you're ready to revisit cleaning up your .csproj, this efficient step-by-step plan ensures you clean house without removing anything critical.


🔹 Step 1: Backup Before Making Changes

🛑 Always back up before editing your project file.

  • Copy the .csproj file to a safe location.
  • (Optional) Commit your current state to Git for easy rollback.

🔹 Step 2: Identify Unused Items

We’ll detect and remove unused packages, content entries, and redundant Compile Include lines.


✅ 1. Remove Unused NuGet Packages

Use the Package Manager Console:

dotnet list package --outdated

  • Review outdated or unused dependencies.
  • Remove unused ones with:

dotnet remove package <PackageName>

🧹 Common culprits: legacy UI packages like Bootstrap 3, old jQuery versions, or unused testing libraries.


✅ 2. Check for Unnecessary <Content Include> Entries

Auto-included content doesn't need to be declared manually.

dotnet msbuild -preprocess | findstr "Content Include"

  • Remove any <Content Include> lines that are picked up automatically (especially from wwwroot/, Scripts/, Styles/, etc.).

✅ 3. Check for Redundant <Compile Include> Entries

Code files under folders like Models/ or Data/ are auto-included in SDK-style projects.

dotnet msbuild -preprocess | findstr "Compile Include"

  • Clean up unnecessary <Compile Include> directives in .csproj.

🔹 Step 3: Test After Each Change

Don't change everything at once. For each cleanup type:

1. Remove a set of entries.

2. Run:

dotnet build

3. If it builds successfully: ✅ Commit.

4. If errors appear: 🔄 Revert and investigate.

Repeat this for each of:

  • Package References
  • Content Includes
  • Compile Includes

🔹 Step 4: Optimize and Maintain

After a clean-up:

  • ✅ Keep .csproj lean by default
  • 🧼 Periodically run:

dotnet list package

  • 🔁 Revisit .csproj after major .NET upgrades

🔥 Cleanup Summary

StepAction
1️⃣Backup .csproj or commit to Git
2️⃣Remove unused NuGet packages
3️⃣Remove unnecessary <Content Include> entries
4️⃣Remove redundant <Compile Include> entries
5️⃣Rebuild and commit after each change
6️⃣Keep tidy and revisit per .NET version

💡 Cleaning your .csproj keeps your project easier to maintain and understand—especially for new devs joining your codebase. Let me know if you want a custom script or checklist to automate this process.