Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизАвтоматическое копирование обновлённой версии программы Найти похожие ветки
← →
Александр © (2007-10-16 11:32) [0]Добрый день. Подскажите как реализовать следующую задачу: существует программа, работающая с базой данных, она установлена на нескольких компьютерах, необходимо при запуске проверить не выложена ли на сервере обновленная версия и, если выложена, скопировать её и запустить. Проблема в том, что когда программа загружена в память её (exe-шник) не перезаписать. Спасибо.
← →
tesseract © (2007-10-16 11:35) [1]
> Проблема в том, что когда программа загружена в память её
> (exe-шник) не перезаписать. Спасибо.
Пиши второй exe-шник и перезаписывай через него.
← →
ЮЮ © (2007-10-16 11:36) [2]Самое простое:
запускать bat-ник, где
1) скопировать ехе-шник с сервера
2) запустить его
Написать программу с аналогичной функциональность и запeскать её, а не реальный ехе-шник
← →
Sergey13 © (2007-10-16 11:46) [3]> [0] Александр © (16.10.07 11:32)
Я тебе в вопросе о компонентах адрес давал. Там, по этой ссылке, есть и для этого примочка -Program Starter & Updater - внизу поищи.
← →
Prohodil Mimo © (2007-10-16 12:26) [4]Александр © (16.10.07 11:32)
Проблема в том, что когда программа загружена в память её (exe-шник) не перезаписать.
Зато его можно переименовать.
Я так делал: при запуске сравнивал версию файлов (себя и на сервере), если на сервере новее, переименовывал запущенный (exe-шник), копировал в каталог с ним с сервера, запускал его, а из этого выходил. Новый (exe-шник) при запуске удаляет переименованный файл.
← →
Prohodil Mimo © (2007-10-16 12:28) [5]Кстати, у меня пару лет назад что-то с вин ХР произошло, я мог удалять запущенные (exe-шники). Значит в винде такая возможность существует, надо только её найти и освободить :о)
← →
Брюнетка © (2007-10-16 13:05) [6]> [3] Sergey13 © (16.10.07 11:46)
А мне можно тоже такую ссылку? -)
← →
Sergey13 © (2007-10-16 13:07) [7]> [6] Брюнетка © (16.10.07 13:05)
Для тебя все что угодно. 8-)
http://polesoft.ru/
← →
GlFox © (2007-10-16 13:17) [8]Когда-то я делал так:
- запускается программа, ломится по прописанным в ini-шнике серверам (который первый доступный)
- далее считывает файл с текущей версией и параметрами апдейта (перезапуск нужен или нет...)
- запускает с сервака bat-ник, а сама выгружается, если надо
- далее уже батник занимается обновлением и перезапуском программы (если надо), для всяких замороченных апдейтов, иногда применял вызов своего самописного .Inf - файла (через rundll вроде)
← →
Ломброзо (2007-10-16 13:30) [9]Рискну пропеарить Microsoft:
Updater Application Block
http://msdn2.microsoft.com/en-us/library/ms978574.aspx
Background Intelligent Transfer Service (BITS)
http://msdn2.microsoft.com/en-us/library/ms997639.aspx
← →
Ломброзо (2007-10-16 13:31) [10]Ну и плюс ClickOnce
← →
БарЛог © (2007-10-16 14:06) [11]Prohodil Mimo © (16.10.07 12:26) [4]
+1
← →
ZeroDivide © (2007-10-16 14:27) [12]Алгоритм такой:
EXE в EXE, первый запускает второй, завершается, второй апдейтит первый, если скачался нормально, перезаписывает первый, запускает, завершается
(У нас файлы версий хранятся в БД)
Особенно обратить внимание на момент апдейта: не удаляйте exeшник, пока новая версия не скачалась с правильной контрольной суммой!
← →
ZeroDivide © (2007-10-16 14:29) [13]Еще точнее:
EXE в EXE, первый выгружает из себя второй, запускает второй, завершается, второй апдейтит первый, если скачался нормально, перезаписывает первый, запускает, завершается, самоубивается с диска
← →
stud (2007-10-16 14:34) [14]а может так:
первый проверяет версию на сервере и локальную, если обновлять не нужно - запускает локальную и сам завершается. если нужно обновить - обновляет, и сам завершается
← →
iZEN © (2007-10-16 15:50) [15]Использовать Java WebStart.
← →
й1 (2007-10-16 19:04) [16]
> Java WebStart.
а также виртуальную машину с турболинухом
← →
iZEN © (2007-10-17 00:17) [17]
> й1 (16.10.07 19:04) [16]
> а также виртуальную машину с турболинухом
турболинух ненужен
← →
Petr V. Abramov © (2007-10-17 00:22) [18]> ZeroDivide © (16.10.07 14:27) [12]
> EXE в EXE,
а внутри bat Ж)
ну можно и так, но проще start.exe, который версию проверяет, если надо, копирует, и передает program.exe
только под вистой вроде работать не будет
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c