一般更新程序下载先放在临时目录下,然后创建一个shell脚本进行程序替换并启动新程序,最后由Qt创建一个进程执行shell脚本,主程序退出。
请教,这样做,相比删掉正在运行的文件然后下载新的过去,有什么优点呢?
]]>遇到了些问题,下载后的文件默认没有可执行权限,调用chmod +x给了权限。
qsimpleupdater代码里是通过qdesktopservices()打开下载的本地文件的,打开时报错:没有应用程序注册为处理此文件的。
182 void Downloader::openDownload()
1 {
2 if (!m_fileName.isEmpty())
3 QDesktopServices::openUrl(QUrl::fromLocalFile(m_downloadDir.filePath(m_fileName)));
4
5 else
6 {
7 QMessageBox::critical(this, tr("Error"), tr("Cannot find downloaded update!"), QMessageBox::Close);
8 }
9 }
不明白的地方:
程序运行过程中,可以删除本应用程序可执行文件?