Разумное развертывание DLL в .net - PullRequest
4 голосов
/ 26 июля 2010

В настоящее время у нас есть приложение, всего около 22 мегабайт.Наша текущая методология развертывания заключается в развертывании приложения на каждом из наших клиентских серверов и использовании небольшой программы обновления. Перейдите и скопируйте все файлы на локальные ПК, если доступна новая версия.Проблема в том, что 22 мегабайта занимают немного больше времени, чем мы хотели бы выдвигать обновления.Тем более, что мы делаем обновление каждые 2 недели.Мы ищем способ сократить это время.

Первоначально мы думали, что локальные ПК будут копировать только те dll, которые были изменены с момента последнего развертывания.У нас есть некоторые проблемы с этим, поскольку временные метки затрудняют получение точных хэшей файла для сравнения.Числа версий могли бы работать нормально, но мы должны были бы найти способ только версии файла, если его код изменился.

Просто интересно, если у кого-то был успех или рекомендации для обработки подобного процесса.

Ответы [ 3 ]

3 голосов
/ 28 июля 2010

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

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

Это освобождает вас от беспокойства о временных метках файлов и т. Д. - файл, который вы в конечном итоге получаете на дальнем конце, является байтовым байтом, идентичным ближайшему, но если единственное, что фактически изменилось, это внутренняя временная метка тогда очень мало данных потребуется для перемещения по проводам.

Мы использовали алгоритм, основанный примерно на том, как работает rsync (http://samba.anu.edu.au/rsync/tech_report/), хотя мы написали его с нуля в C #.

Однако в вашей ситуации может оказаться, что усилия по настройке rsync и пакетного файла для его вызова с правильной средой / параметрами будут проще. Здесь есть версия rsync для Win32: http://www.itefix.no/i2/node/10650, которую я успешно использую.

1 голос
/ 26 июля 2010

Метки времени не влияют на хэши, но обновление номера версии, безусловно, изменит хэш.

0 голосов
/ 28 июля 2010

Проверьте, будет ли развертывание ClickOnce отвечать вашим потребностям.

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