2013-09-01 8 views
0

Есть ли способ сделать текущее обновление программы самостоятельно через установщик установки Inno? Нужно ли quit запускать программу, прежде чем ее можно будет обновить?Автоматическое обновление программы установки Inno

+0

Это не обязательно, но гораздо лучше выйти из приложения, прежде чем перезаписать его двоичный файл. – TLama

+0

@TLama, почему это лучше? Возможно ли даже перезаписать двоичный файл, который приложение не прекратило? Поскольку вы инсайдерский инсталлятор Inno, у меня действительно большие надежды! :) –

+0

1. Поскольку вы не всегда сможете переместить старый двоичный файл и скопировать его новую версию, или может возникнуть ситуация, когда другой материал, используемый вашим приложением, должен быть заменен во время вашего (все еще запущенного) старая версия не сможет их понять (например, обновление схемы БД). 2. Вы можете (попытаться) переместить старый файл (например, переименовать) и скопировать новый. Так что да, возможно, если вам повезет. 3. Этот инсайдер означает, что я создавал несколько пользовательских версий InnoSetup, делающих много внутренних изменений :-) – TLama

ответ

3

Вы всегда можете написать сценарий в установщике обновлений Inno Setup, который будет проверять, запущено ли приложение и закрыть его перед обновлением (FindWindowByClassName или FindWindowByWindowName). Или лучший способ - создать Mutex в вашем приложении, а затем использовать функцию CheckForMutexes.

+1

Для mutex проще всего указать директиву ['AppMutex'] (http://www.jrsoftware.org/ishelp/index.php?topic=setup_appmutex). – TLama

Смежные вопросы