把生成的程序testWeb.exe 另存到一個(gè)空文件夾下
通過 E:\Qt\5.15.2\msvc2019_64\bin\windeployqt.exe testWeb.exe
將依賴dll和資源全部找到涛目,把依賴的子程序也拷貝到發(fā)布目錄下 calendar.exe
現(xiàn)在在發(fā)布目錄下運(yùn)行testWeb.exe是正常的
客戶希望直接給它運(yùn)行程序、無需解壓挑随、無需安裝、一鍵運(yùn)行。
所以想到用Enigma Virtual Box把發(fā)布目錄publish目錄下所有文件打包成一個(gè)完整的exe姐浮。
按步驟窖壕,打包過程如下
然后測(cè)試運(yùn)行钠糊,發(fā)現(xiàn)calendar.exe和QtWebEngineProcess.exe沒有正常響應(yīng)锡凝,導(dǎo)致網(wǎng)頁(yè)沒有顯示粘昨、日歷程序也沒打開。
我嘗試把 calendar.exe 和 QtWebEngineProcess.exe 也用 Enigma Virtual Box 把依賴的dll 也搞成一個(gè)exe,再給testWeb.exe用雾棺,也不行膊夹。
附: publish目錄文件內(nèi)容衬浑,我在這里共享下YS168,因普通用戶有大小限制捌浩,每個(gè)最大30MB,所以分了8個(gè)文件存儲(chǔ),全部下載完成后工秩,解壓publish.zip可以提取尸饺,大家有更好的文件床,可以推薦一下
http://ys-d.ysepan.com/626142937/014735558/UuwfgNl8J34646IGNP5Id5/publish.zip?lx=xz
http://ys-d.ysepan.com/626142975/014735551/SxwhgLl8J34646IGQ6Led/publish.z01?lx=xz
http://ys-d.ysepan.com/626142975/014735551/SxwhgLl8J34646IGQ6Led/publish.z02?lx=xz
http://ys-d.ysepan.com/626142975/014735551/SxwhgLl8J34646IGQ6Led/publish.z03?lx=xz
http://ys-d.ysepan.com/626142975/014735551/SxwhgLl8J34646IGQ6Led/publish.z04?lx=xz
http://ys-d.ysepan.com/626142975/014735551/SxwhgLl8J34646IGQ6Led/publish.z05?lx=xz
http://ys-d.ysepan.com/626142975/014735551/SxwhgLl8J34646IGQ6Led/publish.z06?lx=xz
http://ys-d.ysepan.com/626142933/014735557/UuwfgNl8J34646IGNP5Hb1/publish.z07?lx=xz
發(fā)郵件給china@enigmaprotector.com助币,討論了該問題浪听,給到的回復(fù)如下
從以上可以知道 原因是這個(gè)文件的特殊性【QtWebEngineProcess.exe】。
它不是由主程序直接調(diào)用的眉菱,而是從另一個(gè) DLL 調(diào)用的迹栓。
調(diào)用方法非微軟自帶的 API,因此封包程序無法模擬這個(gè)文件被調(diào)用的動(dòng)作俭缓。
普通的 dll 使用 Windows 常規(guī) API 調(diào)用 exe 的話克伊,沒問題。
上文程序中 QT 用自己的方式加載 exe华坦。 Enigma工具目前沒有計(jì)劃去解決愿吹。
github上也放了一份 publish.zip
暫時(shí)采用備選方案 臨時(shí)文件夾解壓運(yùn)行代替