2013-09-01 136 views
0

有没有办法通过Inno安装程序安装程序自行更新程序?或者是否需要quit正在运行的程序才能升级?Inno安装程序的自动更新

+0

这不是必要的,但是在覆盖它的二进制文件之前退出应用程序要好得多。 – TLama

+0

@TLama,为什么它更好?它甚至可以覆盖它的应用程序还没有退出的二进制文件?既然你是Inno设置的内幕,我现在真的很希望! :) –

+0

1.因为并不总是你可以移动旧的二进制文件并复制它的新版本,或者当你的应用程序使用的其他东西需要替换时(可能仍然在运行) )旧版本将无法理解它们(例如数据库模式更新)。 2.您可以(尝试)移动旧文件(例如,通过重命名)并复制新文件。所以是的,如果你够幸运的话,这是可能的。 3.这个内幕意味着我正在构建几个定制版本的InnoSetup,并进行了许多内部更改:-) – TLama

回答

3

您可以随时在Inno安装更新安装程序中编写一个脚本,用于检查应用程序是否正在运行并在更新之前自动关闭它(FindWindowByClassNameFindWindowByWindowName)。或者更好的方法是在你的应用程序中创建Mutex,然后使用CheckForMutexes函数。

+1

对于互斥体,只需指定['AppMutex'](http://www.jrsoftware.org/ishelp/index.php?topic=setup_appmutex)指令即可。 – TLama

相关问题