В Visual Studio, что делает команда «Очистить»? - PullRequest
62 голосов
/ 21 октября 2009

Вы знаете, тот, который выводит это =>

------ Чистый запуск: Проект: Foo.Bar, Конфигурация: Отладка любого процессора ------
========== Очистить: 1 успешно, 0 не удалось, 0 пропущено ==========

Что это чистит?

Ответы [ 5 ]

67 голосов
/ 22 октября 2009

Каталоги вывода - он удаляет код, который был построен ранее.

Он не удаляет сами каталоги bin / obj (или каталоги Debug / Release под ними), а только файлы .exe, .dll и т. Д. К сожалению, это делает его менее полезным для моего обычного использования очистки выходных каталогов: когда я хочу сжать исходный код. Поскольку действие Clean не делает этого, я обычно просто удаляю каталоги bin и obj напрямую.

27 голосов
/ 22 октября 2009

Почему бы не поискать себя? Откройте Microsoft.Common.Targets (находится в% windir% \ Microsoft.NET), и вы увидите следующий раздел:

<!--
============================================================
                                    Clean

Delete all intermediate and final build outputs.
============================================================
-->
<PropertyGroup>
    <CleanDependsOn>
        BeforeClean;
        CleanReferencedProjects;
        UnmanagedUnregistration;
        CoreClean;
        CleanPublishFolder;
        AfterClean
    </CleanDependsOn>
</PropertyGroup>
<Target
    Name="Clean"
    Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
    DependsOnTargets="$(CleanDependsOn)" />

Продолжайте читать, чтобы точно узнать, что делает каждая из этих подзадач. (Некоторые, конечно, просто заглушки для переопределения пользователем).

Лично мне нравится видеть, какие махинации у меня за штаниной. Для этого я бы порекомендовал увеличить объем информации, записываемой в окно вывода. Сервис -> Параметры -> Проекты и решения -> Построить и запустить -> Подробность MSBuild -> изменить с «Минимальный» на «Обычный» или «Подробный».

Попробуйте снова выполнить операцию очистки и посмотрите результат! Соотнесение того, что вы видите с файлами * .targets, является хорошим способом начать изучение MSBuild.

14 голосов
/ 22 октября 2009

Он просматривает ваши выходные каталоги и удаляет в них все файлы, связанные со сборкой.

Я думаю, вы также можете настроить это, перейдя в свойства проекта в

Свойства конфигурации -> Общие, в разделе «Расширения для удаления при очистке»

3 голосов
/ 22 октября 2009

удаляет все файлы, связанные со сборкой, выходные каталоги

1 голос
/ 22 октября 2009

Люди используют 'clean', чтобы вызвать полное восстановление из исходного кода. Ваш компилятор не перестраивает каждый файл каждый раз, если он не изменился.

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