vscode visual tag studio ortografico orthography corrector code visual-studio visual-studio-2008 batch-file cmd

visual-studio - tag - visual studio code todo comments



Quiero eliminar todas las carpetas bin y obj para forzar a todos los proyectos a reconstruir todo (21)

¿Es ''limpio'' no es lo suficientemente bueno? Tenga en cuenta que puede llamar a msbuild con / t: clean desde la línea de comandos.

Trabajo con varios proyectos, y quiero eliminar de forma recursiva todas las carpetas con el nombre ''bin'' u ''obj'' de esa forma. Estoy seguro de que todos los proyectos reconstruirán todo (a veces es la única forma de forzar a Visual Studio a olvidarse de todo lo anterior). construye).

¿Hay una manera rápida de lograr esto (con un archivo .bat por ejemplo) sin tener que escribir un programa .NET?


Algo así debería hacerlo de una manera bastante elegante, después de un objetivo limpio:

<Target Name="RemoveObjAndBin" AfterTargets="Clean"> <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> <RemoveDir Directories="$(TargetDir)" /> </Target>


Creo que puedes hacer clic derecho en tu solución / proyecto y hacer clic en el botón "Limpiar".

Por lo que recuerdo, funcionaba así. No tengo mi VS.NET conmigo ahora, así que no puedo probarlo.


De hecho, podría llevar la sugerencia de PS un poco más lejos y crear un archivo vbs en el directorio del proyecto como este:

Option Explicit Dim oShell, appCmd Set oShell = CreateObject("WScript.Shell") appCmd = "powershell -noexit Get-ChildItem ./ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse -WhatIf }" oShell.Run appCmd, 4, false

Por seguridad, he incluido el parámetro -WhatIf, así que elimínelo si está satisfecho con la lista en la primera ejecución.


Eche un vistazo a CleanProject , eliminará las carpetas bin, las carpetas obj, las carpetas TestResults y Resharper. El código fuente también está disponible.


En nuestro servidor de compilación, eliminamos explícitamente los directorios bin y obj, a través de scripts nant.

Cada script de compilación del proyecto es responsable de sus directorios de salida / temp. Funciona muy bien de esa manera. Entonces, cuando cambiamos un proyecto y agregamos uno nuevo, basamos la secuencia de comandos en una secuencia de comandos de trabajo, usted observa la etapa de eliminación y se encarga de ello.

Si lo haces en tu máquina de desarrollo lógico, me apuesto a limpiar a través de Visual Studio como otros lo han mencionado.


Encontré este hilo y obtuve el bingo. Un poco más de búsqueda dio vuelta a este script de shell de poder:

Get-ChildItem ./ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

Pensé en compartir, considerando que no encontré la respuesta cuando estaba mirando aquí.


Escribí un script de powershell para hacerlo.

La ventaja es que imprime un resumen de las carpetas eliminadas y las ignoradas si especificó que se ignoraría cualquier jerarquía de subcarpetas.


Este es mi archivo por lotes que utilizo para eliminar todas las carpetas BIN y OBJ de forma recursiva.

  1. Cree un archivo vacío y asígnele el nombre DeleteBinObjFolders.bat
  2. Copie y pegue el código a continuación en DeleteBinObjFolders.bat
  3. 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


Esto depende de la concha que prefieras usar.

Si está utilizando el shell cmd en Windows, debería funcionar lo siguiente:

FOR /F "tokens=*" %%G IN (''DIR /B /AD /S bin'') DO RMDIR /S /Q "%%G" FOR /F "tokens=*" %%G IN (''DIR /B /AD /S obj'') DO RMDIR /S /Q "%%G"

Si está utilizando un shell de tipo bash o zsh (como git bash o babun en Windows o en la mayoría de los shells de Linux / OS X), esta es una forma mucho mejor y más sucinta de hacer lo que quiere:

find . -iname "bin" | xargs rm -rf find . -iname "obj" | xargs rm -rf

y esto se puede reducir a una línea con un OR:

find . -iname "bin" -o -iname "obj" | xargs rm -rf

Si está usando Powershell, entonces puede usar esto:

Get-ChildItem ./ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

como se ve en la respuesta de Robert H a continuación , solo asegúrate de darle crédito por la respuesta de PowerShell en lugar de a mí si eliges votar de forma positiva :)

¡Por supuesto, sería prudente ejecutar el comando que elija en un lugar seguro primero para probarlo!


Esto funcionó para mí:

for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"

Basado en esta respuesta en superuser.com


Muy similar a los scripts de Steve PowerShell. Acabo de agregar TestResults y paquetes a medida que se necesitan para la mayoría de los proyectos.

Get-ChildItem ./ -include bin,obj,packages,TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }


Nada funcionó para mí. Necesitaba borrar todos los archivos en las carpetas bin y obj para depurar y lanzar. Mi solución:

1.Haga clic derecho en el proyecto, descargue, haga clic derecho nuevamente, edite, vaya al final

2.Inserte

<Target Name="DeleteBinObjFolders" BeforeTargets="Clean"> <RemoveDir Directories="../../Publish" /> <RemoveDir Directories="./bin" /> <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> </Target>

3. Guarde, vuelva a cargar el proyecto, haga clic con el botón derecho en limpiar y listo.



Realmente odio los archivos obj que ensucian los árboles de origen. Por lo general, configuro proyectos para que generen archivos obj fuera del árbol de origen. Para los proyectos de C # que suelo usar

<IntermediateOutputPath>../../obj/$(AssemblyName)/$(Configuration)/</IntermediateOutputPath>

Para proyectos en C ++

IntermediateDirectory="../../obj/$(ProjectName)/$(ConfigurationName)"


Tenemos un gran archivo .SLN con muchos archivos de proyecto. Comencé la política de tener un directorio "ViewLocal" donde se encuentran todos los archivos controlados no controlados. Dentro de ese directorio hay un directorio ''Inter'' y un directorio ''Out''. Para los archivos intermedios, y los archivos de salida, respectivamente.

Obviamente, esto facilita la tarea de ir a su directorio ''viewlocal'' y hacer una simple eliminación, para deshacerse de todo.

Antes de dedicar tiempo a descubrir una forma de solucionar esto con los scripts, podría pensar en configurar algo similar.

Sin embargo, no mentiré, mantener tal configuración en una gran organización ha demostrado ser ... interesante. Especialmente cuando utiliza tecnologías como QT que les gusta procesar archivos y crear archivos de origen no controlados. ¡Pero esa es toda una OTRA historia!


Teniendo en cuenta que el archivo PS1 está presente en la carpeta actual (la carpeta en la que necesita eliminar las carpetas bin y obj)

$currentPath = $MyInvocation.MyCommand.Path $currentFolder = Split-Path $currentPath Get-ChildItem $currentFolder -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }


Utilizo para agregar siempre un nuevo objetivo en mis soluciones para lograr esto.

<Target Name="clean_folders"> <RemoveDir Directories="./ProjectName/bin" /> <RemoveDir Directories="./ProjectName/obj" /> <RemoveDir Directories="$(ProjectVarName)/bin" /> <RemoveDir Directories="$(ProjectVarName)/obj" /> </Target>

Y puedes llamarlo desde la línea de comandos.

msbuild /t:clean_folders

Este puede ser su archivo por lotes.

msbuild /t:clean_folders PAUSE



http://vsclean.codeplex.com/

Herramienta de línea de comandos que encuentra las soluciones de Visual Studio y ejecuta el comando Limpiar en ellas. Esto le permite limpiar los directorios / bin / * de todos los proyectos antiguos que tiene en su disco duro


Aquí está la respuesta que le di a una pregunta similar: Simple, fácil, funciona bastante bien y no requiere nada más que lo que ya tiene con Visual Studio.

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.