Всем привет! Есть пяток программок, которые часто обновляются, нужно заходить к каждому оператору, коих не мало и подливать обновленные файлы, в связи с этим возникла идея - универсальный апдейтер.
Создается программа, например updater.exe
На апдейтор создается ярлык с параметром рабочей папки того или иного ПО, например
Ярлык Программа Авис объект "D:\updater\updater.exe" -d:\avias\
В апдейтере есть файл настроек D:\updater\updater.ini
Алгоритм работы запуска программы с ярлыка (Ярлык Программа Авис объект "D:\updater\updater.exe" -d:\avias\)
1) Поиск в файле настроек апдейтера путей к программе и обновлений для нее:
2)
Вычитываем локальную версию программы: Software1Path\+updater.version
Вычитываем версию программы на удаленном сервере: Software1UpdatePath\+updater.version
если версии не совпадают, копируем с Software1UpdatePath в Software1Path
3) При успешном копировании обновляем локальный файл updater.version удаленным
4) сообщение пользователю - успешное обновление
5) Запуск программы для работы - Software1AppPath
Тут один стремный момент - если что-то пошло не так, сетевой ресурс не доступен и др - то программа не запуститься d:\avias\start.exe", так как запуск это конечная функция апдейтера. Как бы сделать так, чтобы d:\avias\start.exe" при любом раскладе мог запуститься, так как обновление не критично, в то время как запуск ПО - критичен, те можно работать на не обновленном ПО.
Я вижу только - расстановка исключений, вывод оператору информации о ошибке и возможность запустить ПО, например: ошибка такая то, сообщите админу и кнопка - запустить Software1Name без обновления
Ресурс \\100.125.214.43 всегда подключен, но можно при недоступности добавить в апдейтер проверку и мапинг.
Ини файл это как пример, можно конечно и в xml и в app.config держать. Планируется чтобы апдейтер был универсальным, чтобы мог апдейтить порядка 3-5 приложений. Язык c#, отрабатывать корректно должен на Win XP - Win 10
Прошу совета гуру
UPD:1
Более простой вариант - в автозагрузку вешается простой самописный синхронизатор каталогов и по списку в настройках делает копирование с заменой всех файлов, если версии не совпадают (алгоритм выше). Т.е. утром запустив машину, первым делом все обновится, если обновления имеются
самый простой и отработанный костыль работает лучше чем новонаписанный скрыпт.
берется програмка синхронизации файлов - "тысячи их"...
правильно настраивается чтобы клонировать состояние на локальную фс с определенного каталога на сервере.
настраивается и тестируется на тестовом образе (в виртуалке чтоб проще было множить тестовые системы).
ставится юзерам.
програмку на сервере обновлять ночером - чтобы у юзера, утром включившего комп прога сразу обновилась.
дык о том и речъ - со сранья ве включают комп и идут за кофе/ждут пока прогрузится почта и т.д.
за пять-десять минут происходит обновление.
вариант2: в параметры выключения системы прописать скрипт обновления. т.е. уходя юзверь нажимает кнопень выключения и не дожидаясь выключения валит домой. комп обновляет все что нужно и вырубается.