标题:Qt Installer framework製作安裝包沒有檔案屬性
作者:yishiang0217
日期:2017-09-05 15:13
内容:
平台:Windows 10
各位板友大家好,
我使用Qt Installer framework進行安裝包製作,
現在問題是安裝包產生後,對安裝包按右鍵查看「內容->詳細資料」,
發現並沒有版本號、產品、描述、檔案名稱...等說明,
想請問板上大神我該如何達到我的目的呢?
謝謝大家。
#1 [笑颜 09-05 17:52]
感觉你这个应该要重新编译Installer这个APP,加上你的那些属性。因为我看过源码,那个工具是直接基于installer这个APP,把你的安装包写入这个APP文件末尾的,QT提供的是编译时没有加任何版本信息的。
#2 回 笑颜 的帖子 [yishiang0217 09-05 18:22]
笑颜:感觉你这个应该要重新编译Installer这个APP,加上你的那些属性。因为我看过源码,那个工具是直接基于installer这个APP,把你的安装包写入这个APP文件末尾的,QT提供的是编译时没有加任何版本信息的。 (2017-09-05 17:52)
笑顏大大,您也太強了吧!!
我是採用binarycreator.exe來產生自製的安裝包的,
Qt Installer framework是於安裝Qt時就有添加這個工具,
我並不太清楚您說的「重新编译Installer」的意思...
能請您再詳述嗎? 謝謝您。
p.s. 附上我所參考連結http://www.cnblogs.com/csuftzzk/p/qt-installer-framework.html
#3 回 yishiang0217 的帖子 [笑颜 09-05 22:55]
yishiang0217:
笑顏大大,您也太強了吧!!
我是採用binarycreator.exe來產生自製的安裝包的,
Qt Installer framework是於安裝Qt時就有添加這個工具,
.......
意思就是,你去获取一份Qt Installer framework的源码自己编译,在编译的时候加入你想要的版本信息到sdk这个APP里面,记错了,installer是编的lib
#4 回 yishiang0217 的帖子 [笑颜 09-05 23:07]
yishiang0217:
笑顏大大,您也太強了吧!!
我是採用binarycreator.exe來產生自製的安裝包的,
Qt Installer framework是於安裝Qt時就有添加這個工具,
.......
yishiang0217:
笑顏大大,您也太強了吧!!
我是採用binarycreator.exe來產生自製的安裝包的,
Qt Installer framework是於安裝Qt時就有添加這個工具,
.......
意思就是,你去获取一份Qt Installer framework的源码自己编译,在编译的时候加入你想要的版本信息到sdk这个APP里面,记错了,installer是编的lib
#5 回 笑颜 的帖子 [yishiang0217 09-06 10:19]
笑颜:意思就是,你去获取一份Qt Installer framework的源码自己编译,在编译的时候加入你想要的版本信息到sdk这个APP里面,记错了,installer是编的lib (2017-09-05 22:55)
哇.. 真的是蠻厲害的!!我大概明白了,就是我需要重新編譯Qt Installer framework的源碼,編譯時加入想要的版本信息,產生出來的Qt Installer framework相關程序假設為A,再用A來製作安裝包,產生出來的安裝包就會都是這個版本號了。
不曉得我的理解有沒有錯誤呢...?
--
另外有兩個問題想再麻煩您指導..
1. 我嘗試利用config.xml內的標簽「RunProgram」於安裝包完成後註冊安裝包內的Windows Service程序,「RunProgramArguments」是有給參數「-i」的,安裝包完成後,看得出來console是有跳出來的,但也許註冊失敗,試著使用管理員權限執行安裝包還是無法完成服務程序的註冊,我不太確定是哪邊錯誤了,稍晚我會試試用installscript.qs來註冊。
2. 在installscript.qs中新增的shortcut,在Uninstall後無法被移除,
看了官方文檔,也只看到CreateShortCut,卻沒有移除路徑的Operation。
http://doc.qt.io/qtinstallerframework/operations.html
我的代碼如下:
Component.prototype.createOperations = function()
{
try {
// call the base create operations function
component.createOperations();
if (systemInfo.productType === "windows") {
component.addOperation("CreateShortcut", "@TargetDir@/RAIDMonitorSetting.exe", "@StartMenuDir@/RAIDMonitorSetting.lnk");
component.addOperation("CreateShortcut", "@TargetDir@/RAIDMonitorSetting.exe", "@HomeDir@/Desktop/RAIDMo ..