一、linux下使用QtInstallerFramework制作安装包
4.0.1版本的QtInstallerFramework-linux-x64.run在linux中运行报错: libdbus-1.so.3 no version information availabe
换成3.0.4版本的就好了:https://download.qt.io/official_releases/qt-installer-framework/3.0.4/
发现linux中,若做好的installer安装包放在中文目录中,运行时会报错。
二、QtInstallerFramework制作的安装包安装后快捷方式没有图标
使用如下的代码去配置installscript.qs,发现安装后的应用程序对应的快捷方式没有图标。
component.addOperation("CreateShortcut", "@TargetDir@/README.txt", "@StartMenuDir@/README.lnk",
"workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
"iconId=2", "description=Open README file");
后来把iconPath
和iconId
参数给去掉,图标就能够正常显示了。
为啥官方给出来的例子是不好使的呢,难道只是为了展示更多的参数使用?
注意:
QtInstallerFramework的config.xml是影响安装程序的,而非应用程序,一开始一直以为这里出现了问题。
其中,InstallerApplicationIcon字段决定安装程序installer.exe和maintenancetool.exe在资源管理器中的图标;感觉InstallerWindowIcon和Logo字段没有起作用,配不配没啥大影响
官方文档:https://doc.qt.io/qtinstallerframework/scripting.html
一个翻译比较好的文章:https://www.cnblogs.com/oloroso/p/6775318.html
三、Qt installer-framework报“ directory you selected already exists“如何解决
问题
最近使用Qt自带的installer-framework来安装软件,发现选择上次的安装目录,并不会直接覆盖,而会报"Qt the directory you selected already exists and contains a installation.choose a different"的错误.
官方文档
看了下官方的文档,发现它们也是这样介绍的:https://doc.qt.io/qtinstallerframework/ifw-use-cases-install.html.
解决方案
后来去stackoverflow中碰碰运气,竟然找到了前人的解决方法:https://stackoverflow.com/questions/46455360/workaround-for-qt-installer-framework-not-overwriting-existing-installation
不得不佩服,stackoverflow是个极客聚集之地.