🧹 ¿Qué carpetas NO debo enviar cuando comparto un proyecto .NET? (Guía práctica para desarrolladores)


Cuando estamos trabajando con un proyecto en .NET (por ejemplo .NET 10) y queremos:
  • Subirlo a GitHub
  • Compartirlo con otro desarrollador
  • Enviarlo a ChatGPT para revisión
  • Hacer un respaldo limpio

Surge una pregunta muy importante:

❓ ¿Qué carpetas NO debo enviar porque son solo archivos de compilación?

Si no sabemos esto, terminamos enviando miles de archivos innecesarios que solo hacen el proyecto más pesado y confuso.

En este artículo te lo explico de forma clara y práctica.


📁 Ejemplo de estructura real de un proyecto

Supongamos que tenemos una estructura como esta:

src
 ├── Captura
 │   ├── bin
 │   ├── obj
 │   ├── Models
 │   ├── ViewModels
 │   └── Windows
 ├── Captura.Core
 │   ├── bin
 │   ├── obj
 │   └── Models
 └── Tests
     ├── bin
     └── obj

Aquí ya podemos identificar qué es código real y qué es generado automáticamente.


🚫 Carpetas que NO debes enviar

1️⃣ Todas las carpetas bin/

Ejemplos:

src/Captura/bin
src/Captura.Core/bin
src/Tests/bin

¿Qué contienen?

  • .dll
  • .exe
  • .pdb
  • archivos compilados
  • dependencias copiadas

¿Por qué NO enviarlas?

Porque:

  • Se generan automáticamente al ejecutar:

    dotnet build
  • No contienen código fuente

  • Solo hacen el proyecto más pesado

  • Pueden causar conflictos innecesarios


2️⃣ Todas las carpetas obj/

Ejemplos:

src/Captura/obj
src/Captura.Core/obj
src/Tests/obj

¿Qué contienen?

  • Archivos temporales de MSBuild
  • Archivos intermedios
  • Caché de compilación
  • Referencias generadas

¿Por qué NO enviarlas?

Porque:

  • Son archivos intermedios
  • Se regeneran automáticamente
  • No son parte del código real
  • No sirven para revisión de lógica

✅ Qué SÍ debes enviar

Todo lo que sea código fuente o configuración real:

  • .cs
  • .csproj
  • .sln
  • .xaml
  • .json
  • .md
  • .yml
  • .props
  • .targets
  • .editorconfig

Y carpetas como:

.github
docs
licenses
scripts
src (sin bin y obj)
Tests (sin bin y obj)

🎯 Regla de oro en .NET

Nunca compartas:

**/bin/
**/obj/

Eso aplica para:

  • Git
  • ZIP para enviar
  • Proyectos para revisión
  • Subidas a repositorios

🧾 Ejemplo de un .gitignore profesional para .NET 10

Si estás usando Git, tu archivo .gitignore debería incluir al menos esto:

# Build output
bin/
obj/

# Visual Studio
.vs/
*.user
*.suo

# Rider
.idea/

# Logs
*.log

# NuGet
*.nupkg

Con esto evitas subir archivos innecesarios.


🧠 Consejo práctico cuando compartes tu proyecto

Si vas a pedir ayuda para un error de compilación, no necesitas enviar todo el repositorio.

Lo ideal es enviar:

  • El archivo .sln
  • El .csproj del proyecto con error
  • Los archivos .cs donde aparece el problema
  • El mensaje exacto del error

Eso es suficiente para que alguien pueda ayudarte.


🚀 Conclusión

En proyectos .NET:

✔ Comparte solo código fuente ✔ Comparte archivos de configuración ❌ No compartas bin/ ❌ No compartas obj/

Esto hace que tu proyecto:

  • Sea más liviano
  • Más profesional
  • Más limpio
  • Más fácil de revisar

 

Comentarios