Я только что добавил такую задачу Nant на нашу машину CC.
См. http://nant.sourceforge.net/release/latest/help/tasks/zip.html
Обратите внимание, что при первоначальном просмотре архива zip может показаться, что все файлы находятся на одном уровне, т.е. нет папок, но на самом деле они сохранены.
Обратите внимание, как можно исключать типы файлов или папок.
Вы можете использовать только те типы файлов, которые вам нужны, и исключать остальные.
Сначала определите свойства, где исходные файлы - allcode.dir, а также имя и местоположение zip-файла sourcebackup.zip
Теперь вот задача nant
<zip zipfile="${sourcebackup.zip}" includeemptydirs="true" verbose="true">
<fileset basedir="${allcode.dir}">
<include name="**/*" />
<exclude name="**/_resharper*/**" />
<exclude name="**/build/**" />
<exclude name="**/obj/**" />
<exclude name="**/bin/**" />
<exclude name="**/*.dll" />
<exclude name="**/*.scc" />
<exclude name="**/*.log" />
<exclude name="**/*.vssscc" />
<exclude name="**/*.suo" />
<exclude name="**/*.user" />
<exclude name="**/*.pdb" />
<exclude name="**/*.cache" />
<exclude name="**/*.vspscc" />
<exclude name="**/*.msi" />
<exclude name="**/*.irs" />
<exclude name="**/*.exe" />
</fileset>
<echo message="########## Zipped##########" />
Вызовите это из вашей сборки cc, как и любую другую задачу nant.
Лучше всего, если каждый проект CC вызывает одну задачу, если это возможно, тогда вам нужно всего лишь изменить скрипт nant и запустить скрипт nant на локальном компьютере.
Например, в блоке проекта у нас есть единственная цель "build", которая в рамках своей работы называет ZipSource
<targetList>
<target>Build</target>
</targetList>
Мы используем вышеупомянутое для проекта BizTalk.
Наслаждайтесь.