Я хочу удалить все папки bin и obj, чтобы заставить все проекты перестраивать все - PullRequest
211 голосов
/ 16 апреля 2009

Я работаю с несколькими проектами и хочу рекурсивно удалить все папки с именем «bin» или «obj» таким образом, я уверен, что все проекты будут перестраивать все (иногда это единственный способ заставить Visual Studio забыть все о предыдущих сборках).

Есть ли быстрый способ сделать это (например, с помощью файла .bat) без необходимости писать программу .NET?

Ответы [ 25 ]

0 голосов
/ 07 января 2019

Для решения в партии. Я использую следующую команду:

FOR /D /R %%G in (obj,bin) DO @IF EXIST %%G IF %%~aG geq d RMDIR /S /Q "%%G"


Причина неиспользования DIR /S /AD /B xxx
1. DIR /S /AD /B obj вернет пустой список (по крайней мере, на моей Windows10) enter image description here
2. DIR /S /AD /B *obj будет содержать результат, который не ожидается (папка tobj) enter image description here

0 голосов
/ 16 апреля 2009

Я действительно ненавижу файлы obj, засоряющие исходные деревья. Обычно я настраиваю проекты так, чтобы они выводили файлы obj за пределы исходного дерева. Для проектов на C # я обычно использую

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

Для проектов C ++

 IntermediateDirectory="..\..\obj\$(ProjectName)\$(ConfigurationName)"
0 голосов
/ 16 мая 2016

Учитывая, что файл PS1 присутствует в currentFolder (папке, в которой вам нужно удалить папки bin и obj)

$currentPath = $MyInvocation.MyCommand.Path
$currentFolder = Split-Path $currentPath

Get-ChildItem $currentFolder -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
0 голосов
/ 16 апреля 2009

У нас есть большие файлы .SLN со многими файлами проекта. Я начал политику наличия директории «ViewLocal», в которой находятся все неконтролируемые файлы. Внутри этого каталога находится каталог Inter и Out. Для промежуточных файлов и выходных файлов соответственно.

Это, очевидно, упрощает переход в каталог 'viewlocal' и простое удаление, чтобы избавиться от всего.

Прежде чем вы потратите время на поиски способа обойти это с помощью скриптов, вы можете подумать о настройке чего-то подобного.

Хотя я не буду лгать, поддержание такой настройки в большой организации оказалось… интересным. Особенно, когда вы используете такие технологии, как QT, которые любят обрабатывать файлы и создавать неконтролируемые исходные файлы. Но это целая другая история!

0 голосов
/ 16 апреля 2009

Я думаю, что вы можете щелкнуть правой кнопкой мыши свое решение / проект и нажать кнопку "Очистить".

Насколько я помню, это работало так. У меня нет с собой VS.NET, поэтому я не могу его проверить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...