Как я делаю самообновление файла (Собственный компонент C++)

Вы все еще можете использовать его (mysqli - это просто еще один способ связи с сервером, сам язык SQL расширен, а не изменен). Подготовленные утверждения , тем не менее, безопаснее - поскольку вам не нужно каждый раз сталкиваться с проблемой правильного экранирования ваших значений. Вы можете оставить их, как они были, если хотите, но риск перехода на sql уменьшается, если вы переключитесь.

7
задан Clark Gaebel 17 June 2009 в 20:50
поделиться

6 ответов

Напишите новый исполняемый файл и удалите или сохраните копию старого - вы можете отправить различие по сети и иметь третью программу, монитор обновлений или что-то еще, чтобы применить его. Это будет всего лишь небольшой сценарий, который можно запустить из удаленного приложения, когда оно обнаружит, что доступно обновление. Средство обновления может переименовать себя в $ UPDATER_OLD_VERSION или что-то еще, записать обновленную копию самого себя с соответствующим именем, а затем, когда новое средство обновления будет запущено, вы проверяете, есть ли файл с именем $ UPDATER_OLD_VERSION в каталоге приложения и удаляете его. Все остальные файлы можно было просто обновить / перезаписать.

5
ответ дан 6 December 2019 в 12:53
поделиться

Я делаю это с помощью InnoSetup setup.exe, который запускается в автоматическом режиме и закрывает мое приложение перед установкой новых файлов. Мне пришлось добавить специальные разделы Pascal [Code], чтобы гарантировать, что все отключается, но выполняет свою работу.

2
ответ дан 6 December 2019 в 12:53
поделиться

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

3
ответ дан 6 December 2019 в 12:53
поделиться

I think you are talking about file versions and updaters. As you said you need autoupdater.So you need to create a service which monitors your install directory and compares the file version on your disk with server.

Once mismatch happens you can ask latest data from server . If the files going to be replaced are in use you have to mark them for deletion / unregistration during next reboot and you can mention these using registry.

You can copy all files in cache and later during reboot copy them to install directory.

0
ответ дан 6 December 2019 в 12:53
поделиться

Когда я делал программу обновления, я должен был разделить программу на несколько. Основная причина заключалась в том, что вы хотите делать. Проще говоря, B обновляет целевое приложение плюс A и A обновляет B. Я попытался найти другой способ, но то, что я сделал, было очень маленьким и простым средством обновления. : (

0
ответ дан 6 December 2019 в 12:53
поделиться

Вы не можете перезаписать файл во время его выполнения, но вы МОЖЕТЕ переименовать его. В моем средстве обновления я переименовываю существующий exe во что-то значимое (oldname_dateandtime), затем записываю новую копию. Затем автоматически выключаю нашу систему и перезапускаю ее из службы. Когда приложение запускается, запускается новая версия.

2
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: