visual tutorial temas studio para linea iconos extensiones español eliminar configurar code ajuste visual-studio msbuild

tutorial - Cómo limpiar las carpetas de objetos y objetos de Visual Studio



visual studio code español (14)

Almaceno mis proyectos VS terminados guardando solo el código fuente.

Borro las carpetas BIN, DEBUG, RELEASE, OBJ, ARM y .vs de todos los proyectos.

Esto reduce considerablemente el tamaño del proyecto. El proyecto

debe ser reconstruido cuando se saca de almacenamiento.

Si hace clic con el botón derecho en una carpeta, verá un elemento del menú "Limpiar". Asumí que esto limpiaría (eliminaría) el directorio obj y bin. Sin embargo, por lo que puedo ver, no hace nada. ¿Hay otra manera? (Por favor, no me digas que vaya al Explorador de Windows o al cmd.exe) Me gustaría eliminar la carpeta obj y bin para poder comprimir todo fácilmente.


Así es como hago con un archivo por lotes para eliminar todas las carpetas BIN y OBJ de forma recursiva.

  • Cree un archivo vacío y asígnele el nombre DeleteBinObjFolders.bat
  • Copie y pegue el código a continuación en DeleteBinObjFolders.bat
  • Mueva el archivo DeleteBinObjFolders.bat en la misma carpeta con su archivo de solución (* .sln).

@echo off @echo Deleting all BIN and OBJ folders... for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d" @echo BIN and OBJ folders successfully deleted :) Close the window. pause > nul


Basándome en la respuesta de Joe, he convertido el código VB en C #:

/// <summary> /// Based on code of VSProjCleaner tool (C) 2005 Francesco Balena, Code Archirects /// </summary> static class VisualStudioCleaner { public static void Process(string rootDir) { // Read all the folder names in the specified directory tree string[] dirNames = Directory.GetDirectories(rootDir, "*.*", SearchOption.AllDirectories); List<string> errorsList = new List<string>(); // delete any .suo and csproj.user file foreach (string dir in dirNames) { var files = new List<string>(); files.AddRange(Directory.GetFiles(dir, "*.suo")); files.AddRange(Directory.GetFiles(dir, "*.user")); foreach (string fileName in files) { try { Console.Write("Deleting {0} ...", fileName); File.Delete(fileName); Console.WriteLine("DONE"); } catch (Exception ex) { Console.WriteLine(); Console.WriteLine(" ERROR: {0}", ex.Message); errorsList.Add(fileName + ": " + ex.Message); } } } // Delete all the BIN and OBJ subdirectories foreach (string dir in dirNames) { string dirName = Path.GetFileName(dir).ToLower(); if (dirName == "bin" || dirName == "obj") { try { Console.Write("Deleting {0} ...", dir); Directory.Delete(dir, true); Console.WriteLine("DONE"); } catch (Exception ex) { Console.WriteLine(); Console.WriteLine(" ERROR: {0}", ex.Message); errorsList.Add(dir + ": " + ex.Message); } } } Console.WriteLine(new string(''-'', 60)); if (errorsList.Count == 0) { Console.WriteLine("All directories and files were removed successfully"); } else { Console.WriteLine("{0} directories or directories couldn''t be removed", errorsList.Count); Console.WriteLine(new string(''-'', 60)); foreach (string msg in errorsList) { Console.WriteLine(msg); } } } }


Como ya han respondido otros, Clean eliminará todos los artefactos generados por la compilación. Pero dejará atrás todo lo demás.

Si tiene algunas personalizaciones en su proyecto de MSBuild, esto podría significar problemas y dejar atrás cosas que creería que deberían haber eliminado.

Puede evitar este problema con un simple cambio en su proyecto. * Agregando esto en algún lugar cerca del final:

<Target Name="SpicNSpan" AfterTargets="Clean"> <RemoveDir Directories="$(OUTDIR)"/> </Target>

Lo que eliminará todo en su carpeta bin de la plataforma / configuración actual.

------ Editar la evolución leve basada en la respuesta de Shaman a continuación (compartir los votos y darle algunos también)

<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- Remove obj folder --> <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> <!-- Remove bin folder --> <RemoveDir Directories="$(BaseOutputPath)" /> </Target>

---- Edite nuevamente con partes de xDisruptor pero eliminé la eliminación de .vs ya que esto se serviría mejor en un .gitignore (o equivalente)

Actualizado para VS 2015.

<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 --> <RemoveDir Directories="$(TargetDir)" /> <!-- bin --> <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj --> </Target>

También proporciona una buena sugerencia para hacer que la tarea sea más fácil de implementar y mantener si tiene varios proyectos para llevar a cabo.

Si vota esta respuesta, asegúrese de votar ambos también.


Echa un vistazo al fantástico CleanProject código abierto de Ron Jacobs.

Aquí está el link CodePlex


Este sitio: https://sachabarbs.wordpress.com/2014/10/24/powershell-to-clean-visual-studio-binobj-folders/ usa powershell para eliminar cualquier carpeta bin y obj del directorio y subdirectorios actuales. Debería ser posible ejecutarlo desde la raíz de la unidad. Aquí hay citas del artículo:

Aquí está la versión de Williams

gci -inc bin,obj -rec | rm -rec -force

En palabras propias de Williams.

Eso borra todos los directorios "bin" y "obj" en el directorio actual y en cada subdirectorio. Súper útil para ejecutarlo en el directorio de su área de trabajo para llegar a un estado "limpio", especialmente cuando alguien se desordena y hay algo que un Limpio o Reconstrucción dentro del IDE no detecta.

Para aquellos de ustedes que lean algo que quizás no sepan, PowerShell admite alias de comandos, aquí se reescribe nuevamente sin usar los alias

Get-ChildItem -inc bin,obj -rec | Remove-Item -rec -force

NOTA: Debe tener esto almacenado en un archivo de PowerShell y colocar ese archivo en la raíz de su solución (donde reside el archivo .sln), y luego ejecutarlo cuando desee una limpieza adecuada (no el mouse micky que hace VisualStudio). e informa de éxito también).


Limpiar eliminará todos los archivos intermedios y finales creados por el proceso de compilación, como los archivos .obj y .exe o .dll.

Sin embargo, no elimina los directorios donde se construyen esos archivos. No veo una razón convincente por la que necesita que se eliminen los directorios. ¿Puedes explicar más?

Si mira dentro de estos directorios antes y después de "Limpiar", debería ver cómo se limpia su salida compilada.


No elimina las carpetas, pero sí elimina los subproductos de compilación. ¿Hay alguna razón por la que quiera eliminar las carpetas de compilación reales?


No puedo agregar un comentario todavía (no se ha alcanzado una reputación mínima)
Así que les dejo esta respuesta para subrayar que:

la acción "BeforeBuild" con <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> es excelente pero, para mí, está en conflicto con un modelo de Entity Framework incluido en el mismo proyecto.

El error que recibo es:

Error reading resource ''{mymodel}.csdl'' -- ''Could not find a part of the path ''{myprojectpath}/obj/Release/edmxResourcesToEmbed/{mymodel}.csdl

Supongo que el "edmxResourcesToembed" se crea antes de que se ejecute la acción de destino "BeforeBuild".


Para Visual Studio 2015, las variables de MSBuild han cambiado un poco:

<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 --> <RemoveDir Directories="$(TargetDir)" /> <!-- bin --> <RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs --> <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj --> </Target>

Tenga en cuenta que este fragmento de código también borra la carpeta .vs del directorio raíz de su solución. Es posible que desee comentar la línea asociada si cree que eliminar la carpeta .vs es una exageración. Lo tengo habilitado porque noté que en algunos proyectos de terceros causa problemas cuando existen archivos ala application.config dentro de la carpeta .vs.

Apéndice:

Si está en la optimización de la capacidad de mantenimiento de sus soluciones, es posible que desee llevar las cosas un paso más allá y colocar el fragmento de código anterior en un archivo separado, así:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 --> <RemoveDir Directories="$(TargetDir)" /> <!-- bin --> <RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs --> <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj --> </Target> </Project>

Y luego incluya este archivo al final de cada uno de sus archivos * .csproj como:

[...] <Import Project="../../Tools/ExtraCleanup.targets"/> </Project>

De esta manera, puede enriquecer o afinar su lógica de limpieza adicional de forma centralizada, en un solo lugar sin tener que esforzarse por editar manualmente todos y cada uno de los archivos * .csproj a mano cada vez que desee hacer una mejora.



Puede encontrar y eliminar fácilmente las carpetas bin y obj en Far Manager.

  1. Navega a tu solución y presiona Alt + F7
  2. En el cuadro de diálogo de configuración de búsqueda:

    • Escriba "bin, obj" en el campo "Una máscara de archivo o varias máscaras de archivo"
    • Marque la opción "Buscar carpetas"
    • Presiona enter
  3. Una vez realizada la búsqueda, cambie la vista a "Panel" .

  4. Seleccione todos los archivos (con Ctrl + A) y elimine las carpetas (presione "Shift + Del")

Espero que ayude a alguien.


Si está utilizando git y tiene un .gitignore correcto en su proyecto, puede

git clean -xdf --dry-run

para eliminar absolutamente todos los archivos de la lista .gitignore , es decir, se limpiarán las carpetas obj y bin (la x provoca este comportamiento)


Uso VisualStudioClean que es fácil de entender y predecible. Saber cómo funciona y qué archivos va a eliminar me alivia.

Anteriormente probé VSClean (nota que VisualStudioClean no es VSClean), VSClean es más avanzado, tiene muchas configuraciones que a veces me preguntan qué archivos se van a eliminar. Una configuración incorrecta resultará en la pérdida de mis códigos fuente. Para probar cómo funcionará la configuración es necesario hacer una copia de seguridad de todos mis proyectos, lo que lleva muchas veces, por lo que al final elijo VisualStudioClean.

Conclusión: VisualStudioClean si desea una limpieza básica, VSClean para un escenario más complejo.