Используете ли вы контроль исходного кода?
Этот комментарий звучит так, будто вы этого не делаете:
При архивировании это ненужные мегабайты.
("Архивация""звучит немного похоже на регулярное копирование всей папки проекта в что-то вроде backup_yyyymmdd
)
Если вы не используете систему контроля версий, вам следует окончательно рассмотреть возможность ее использования.
Помимо общих преимуществ (например, наличие истории изменений с датами и комментариями ...), у нее есть готовое решение для вашей проблемы с папками obj
:
Каждое хорошее программное обеспечение для контроля версий поддерживает игнорирование определенных файлов или папок, которые вы можете определить (игнорирование означает, что они никогда не могут быть зафиксированы в исходном репозитории, вы даже не видите их в списке измененных файлов, недаже когда они были изменены).
Например, в Mercurial (который я использую) настройки игнорирования сохраняются в файле с именем .hgignore
в основной папке ( Git имеет то же самое,он просто называется .gitignore
).
Мой файл по умолчанию .hgignore
для всех проектов Visual Studio выглядит следующим образом:
syntax: glob
bin
obj
*.suo
*.user
Первая строка принадлежит синтаксису игнорирования Mercurial, остальныенастройки, которые следует игнорировать.
Вы можете видеть, что папки bin
и obj
игнорируются ... и они игнорируются независимо от того, в какой подпапке они находятся!
Так что я неЯ должен заботиться о том, где на самом деле находятся папки obj, и мне не нужно удалять их вручную каждый раз, когда я создаю свое решение.Их просто нет в моей истории управления исходными кодами.
Плюс, у меня есть вариант ответа Фудзи о том, что все помещается в одну выходную папку:
Мне нравится это делатьно я предпочитаю изменять выходные папки в настройках проекта Visual Studio вместо использования событий после сборки.
Выходные папки по умолчанию:
Я изменяю их на:
..\build\Debug\
..\build\Release\
Это компилирует все в подпапки папки build
, которая находится на том же уровне, что и файл .sln
(что означает: все проекты в решении напрямую компилируются в одну и ту же папку).
Это также уменьшает время компиляции, поскольку VisualStudio не нужно будет копировать все зависимости после компиляции (потому что все уже находится в одной папке).
(я делаю это в основном из-за времени компиляции, потому чтоЯ игнорирую bin
и obj
папок в Mercurial, как описано выше, поэтому мне все равно, где они на самом деле)