хорошо, DetachedCriteria являются сериализуемыми, таким образом, Вы имеете встроенный (если неэлегантный), глубоко клонируют поддержку. Вы могли сериализировать начальные критерии к байту [] однажды на конструкции, затем десериализовать ее каждый раз, когда Вы хотите использовать ее.
Выходные каталоги - он удаляет ранее созданный код.
Он не удаляет сами каталоги bin / obj (или каталоги Debug / Release под ними), только фактические файлы .exe, .dll и т. д. К сожалению, это делает его менее полезным для моего обычного использования очистки выходных каталогов: когда я хочу заархивировать исходный код. Поскольку действие Clean этого не делает, я обычно просто удаляю каталоги bin и obj напрямую.
Почему бы не поискать себя? Откройте 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)" />
Продолжайте читать, чтобы точно узнать, что делает каждая из этих подцелей. (Некоторые, конечно, просто заглушки, которые пользователь может переопределить.)
Лично мне нравится видеть, какие махинации моя модная IDE творит за моей спиной. С этой целью я бы рекомендовал увеличить объем информации, записываемой в окно вывода. Инструменты -> Параметры -> Проекты и решения -> Сборка и запуск -> Подробность MSBuild -> изменить с «Минимальный» на «Нормальный» или «Подробный».
Попробуйте выполнить операцию очистки еще раз и посмотрите результат! Сопоставление того, что вы видите, с файлами * .targets - хороший способ начать изучение MSBuild.
Он просматривает ваши выходные каталоги и удаляет в них все файлы, связанные со сборкой.
Я думаю, вы также можете настроить это, перейдя в свойства проекта в
Свойства конфигурации -> Общие в разделе «Расширения, удаляемые при чистке»
удаляет все файлы, связанные со сборкой, выходные каталоги
Люди используют «чистый», чтобы принудительно выполнить полную перестройку из исходного кода. Ваш компилятор не перестраивает каждый файл каждый раз, если он не изменялся.