Двоичное сравнение изображений / файлов с использованием MSBuild или CCNet - PullRequest
1 голос
/ 02 декабря 2010

В моем текущем клиенте мы используем CruiseControl.Net для непрерывной интеграции.Мы создаем проекты веб-сайтов с использованием MSBuild.

Проблема, с которой я столкнулся, заключается в следующем: мы хотим перемещать весь код и связанные библиотеки DLL с каждым выпуском.Тем не менее, у нас также есть (иногда) сотни мегабайт файлов и изображений, которые остаются неизменными.В мире CC.Net я, вероятно, разделю их на две разные сборки: одну для сайта, а другую для статического контента.

Я хотел бы знать, если кто-нибудь знает оПлагин MSBuild или CCNet, который позволит мне выполнять бинарный анализ моего статического содержимого? Я бы хотел знать, было ли изображение изменено или добавлено, а затем пакет только изменен/ добавили контент и отправили его в среду QA.

1 Ответ

0 голосов
/ 02 декабря 2010

Я сделал это с помощью журналов svn и задач MsBuild.

Каждый раз, когда я развертываю веб-сайт, я сохраняю где-то номер редакции (в основном в виде плоского файла). Затем на следующем Build-Deploy я сделаю журнал svn, чтобы увидеть разницу между последней версией и сейчас. Затем моя задача MsBuild берет вывод XML svn log, анализирует его и выводит в другой файл интересные статические файлы, добавленные / измененные / удаленные. Затем приходят обычные задачи и обрабатывают только измененные файлы вместо каждого файла.

Это была огромная работа (прежде всего с внутренней логикой: наше «статическое» содержимое динамически генерируется для каждой среды, каждого партнера и каждой темы), но оно того стоило.

В любом случае, вы можете попробовать использовать ChecksumCopy, но я не знаю, дешевле ли это ...

...