Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2008, 22:23   #1
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию Система обновлений

Здравствуйте, уважаемые!
Хочу реализовать в совей программе систему обновлений.
Загрузку exe файла реализовать смог, но вот с самим обновлением вышел конфуз... запущенный файл нельзя заменить (при условии, что программа загружает саму себя и пытается заменить свой же exe`шник)

Подскажите, как быть? (использование отдельного апдэйтера не желательно)
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 24.10.2008, 22:34   #2
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

А че прога состоит из одного ЕХЕшника? И что вы подразумеваете под обновлением (на уровне своей программы).
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 24.10.2008, 22:52   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Загрузку exe файла реализовать смог, но вот с самим обновлением вышел конфуз... запущенный файл нельзя заменить (при условии, что программа загружает саму себя и пытается заменить свой же exe`шник)
А зачем так-то?
Пусть "старый" экзешник грузит новый вариант и запускает его. А новый - пусть убъет старый... Правда, с именами загвоздка...
Ну, пусть будет в комплекте некая маленькая утилитка, которая запускается по окончании работы программы и проверяет имя главного экзешника, и подправляет, если нужно...
Или, как вариант, она же запускается при обновлении, убивает старый, скачивает новый под другим именем, при удачном скачивании стирает старый, переименовывает новый, запускает его и кончает жизнь самоубийством
Правда, вы ее обзовете апдейтером и отвергнете...

Последний раз редактировалось mihali4; 24.10.2008 в 22:57.
mihali4 вне форума Ответить с цитированием
Старый 24.10.2008, 23:42   #4
maxvodo.dll
Пользователь
 
Аватар для maxvodo.dll
 
Регистрация: 24.10.2008
Сообщений: 17
По умолчанию

я за вариант mihali4
но с вариацией. маленькая программа запускается главной (главная закрывается при наличии обновления), ищет обновления - скачивает их. заменяет главную прогу - запускает ее и "кончает жизнь самоубийством"
maxvodo.dll вне форума Ответить с цитированием
Старый 24.10.2008, 23:48   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от maxvodo.dll Посмотреть сообщение
маленькая программа запускается главной
Да, верно, я именно это и имел в виду.
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 10:04   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Или вынести функционал в dll-ку и менять ее. А сам екзешник менять уже когда действительно новая версия, а не мелкое обновление. Тогда юзер установку новой версии сам уже запустит.

К тому же что делать тем пользователям, к-рые только начали пользоваться вашей программой. Качать старую версию и потом чтобы она качала обновление к-рое больше ее самой?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 25.10.2008 в 10:08.
mutabor вне форума Ответить с цитированием
Старый 25.10.2008, 10:59   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
А че прога состоит из одного ЕХЕшника?
Действительно, обновляться может не только ЕХЕшник.
Я, чтобы не ломать голову, делал обновление с инсталлятором. Программа лезет на сайт, читает текстовый файл с номером последней версии, если этот номер > номера текущей - предлагается обновиться. Скачивается файл setup.exe и запускается с просьбой "Для продолжения установки, пожалуйста, закройте программу...", если она запущена. (можно, конечно, сделать, чтобы инсталлятор "грохнул" процесс программы, но это лишнее... народ сейчас грамотный, разберутся...)
PS. А в окнах инсталлятора Логотип программы и прочая дребедень... Все выглядит очень солидно

Последний раз редактировалось _SERGEYX_; 25.10.2008 в 11:09.
_SERGEYX_ вне форума Ответить с цитированием
Старый 25.10.2008, 20:23   #8
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Больше склоняюсь к варианту, предложенному _SERGEYX_, но не хотелось бы, чтоб вылазили установщики, к тому же, придётся постоянно создавать инсталлер полный (или частичный), что лишний геморой для меня) Хотелось бы, чтоб весь проэкт обновлялся как SVN, только чтоб скачивались не сырки, а база данных и сам экзешник....
хотя как вариант, можно скачивать утилитку, которая убьёт старую версию, переименует новую, и сыграет в камикадзе...

Вобщем, если без дополнительных приложений не получится, наверно так и поступлю...

Всем спасибо за Ваши мнения)
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 25.10.2008, 20:39   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
хотя как вариант, можно скачивать утилитку, которая убьёт старую версию, переименует новую, и сыграет в камикадзе...
А зачем ее скачивать-то??? Это она скачивает...
Она должна идти в первоначальном комплекте программы...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловая система student_63 Win Api 1 12.04.2008 20:29
Система координат SunKnight Общие вопросы Delphi 2 05.02.2008 19:42
система Moodle Roo Фриланс 1 27.11.2007 22:30
Система поиска. R-SER Помощь студентам 0 22.11.2007 18:44