部署的 Qt 应用程序 QtWebEngineProcess 无法加载 Qt5Core.dll

joh*_*co3 3 c++ deployment qt

我需要帮助才能将 Qt 5.14.1 x64 应用程序正确部署到客户端的 Windows 10 PC。该应用程序使用QtWebEngineProcess在选项卡式界面窗口之一中显示谷歌地图。

这曾经工作正常,直到 Visual Studio 2019(当前最新版本 16.4.5)更新或 QT 版本从先前版本更新 - 我认为使用版本 5.13.2。我无法判断哪个更改导致了错误。

问题是当应用程序在客户端的 PC 上启动时(没有 Visual Studio 或 Qt)。当我双击该应用程序时,它会暂停几秒钟,最终弹出一个对话框,表明找不到 Qt5Core.dll。(与应用程序位于同一文件夹中),不久之后它会显示另一个对话框,错误代码为 0xc0000022。

它们与从我的主应用程序可执行文件 (app739.exe) 实例化的子进程 (QtWebEngineProcess.exe) 相关联。

将工作(之前的)版本与当前工作版本进行比较,我注意到存在一个新的 DLL 依赖项VCRUNTIME140_1.dll。这似乎与异常处理有关,但是 QtWebEngineProcess.exe 没有将此 dll 列为依赖项。

该应用程序的部署如下:

F:\Common\coffey\CoPilotTesterV23.0\app739.exe 64 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qmldbg_debugger.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_inspector.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_local.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_messages.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_native.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_nativedebugger.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_preview.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_profiler.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_quickprofiler.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_server.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_tcp.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qsgd3d12backend.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Direct dependencies: Qt5Core Qt5Gui Qt5SerialPort Qt5Widgets Qt5WebEngineWidgets Qt5WebChannel
All dependencies   : Qt5Core Qt5Gui Qt5Network Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5SerialPort Qt5Widgets Qt5WebEngineCore Qt5WebEngineWidgets Qt5WebChannel
To be deployed     : Qt5Core Qt5Gui Qt5Network Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5SerialPort Qt5Svg Qt5Widgets Qt5WebEngineCore Qt5WebEngineWidgets Qt5WebChannel
Qt5QmlModels.dll is up to date.
Qt5Core.dll is up to date.
Qt5Gui.dll is up to date.
Qt5Network.dll is up to date.
Qt5Positioning.dll is up to date.
Qt5PrintSupport.dll is up to date.
Qt5Qml.dll is up to date.
Qt5Quick.dll is up to date.
Qt5QuickWidgets.dll is up to date.
Qt5SerialPort.dll is up to date.
Qt5Svg.dll is up to date.
Qt5Widgets.dll is up to date.
Qt5WebEngineCore.dll is up to date.
Qt5WebEngineWidgets.dll is up to date.
Qt5WebChannel.dll is up to date.
libGLESV2.dll is up to date.
libEGL.dll is up to date.
d3dcompiler_47.dll is up to date.
opengl32sw.dll is up to date.
qgenericbearer.dll is up to date.
qsvgicon.dll is up to date.
qgif.dll is up to date.
qicns.dll is up to date.
qico.dll is up to date.
qjpeg.dll is up to date.
qsvg.dll is up to date.
qtga.dll is up to date.
qtiff.dll is up to date.
qwbmp.dll is up to date.
qwebp.dll is up to date.
qwindows.dll is up to date.
qtposition_positionpoll.dll is up to date.
qtposition_serialnmea.dll is up to date.
qtposition_winrt.dll is up to date.
windowsprintersupport.dll is up to date.
qwindowsvistastyle.dll is up to date.
Deploying: QtWebEngineProcess...
QtWebEngineProcess.exe is up to date.
F:\Common\coffey\CoPilotTesterV23.0\app739.exe 64 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qmldbg_debugger.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_inspector.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_local.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_messages.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_native.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_nativedebugger.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_preview.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_profiler.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_quickprofiler.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_server.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_tcp.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qsgd3d12backend.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Direct dependencies: Qt5Core Qt5Gui Qt5SerialPort Qt5Widgets Qt5WebEngineWidgets Qt5WebChannel
All dependencies   : Qt5Core Qt5Gui Qt5Network Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5SerialPort Qt5Widgets Qt5WebEngineCore Qt5WebEngineWidgets Qt5WebChannel
To be deployed     : Qt5Core Qt5Gui Qt5Network Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5SerialPort Qt5Svg Qt5Widgets Qt5WebEngineCore Qt5WebEngineWidgets Qt5WebChannel
Qt5QmlModels.dll is up to date.
Qt5Core.dll is up to date.
Qt5Gui.dll is up to date.
Qt5Network.dll is up to date.
Qt5Positioning.dll is up to date.
Qt5PrintSupport.dll is up to date.
Qt5Qml.dll is up to date.
Qt5Quick.dll is up to date.
Qt5QuickWidgets.dll is up to date.
Qt5SerialPort.dll is up to date.
Qt5Svg.dll is up to date.
Qt5Widgets.dll is up to date.
Qt5WebEngineCore.dll is up to date.
Qt5WebEngineWidgets.dll is up to date.
Qt5WebChannel.dll is up to date.
libGLESV2.dll is up to date.
libEGL.dll is up to date.
d3dcompiler_47.dll is up to date.
opengl32sw.dll is up to date.
qgenericbearer.dll is up to date.
qsvgicon.dll is up to date.
qgif.dll is up to date.
qicns.dll is up to date.
qico.dll is up to date.
qjpeg.dll is up to date.
qsvg.dll is up to date.
qtga.dll is up to date.
qtiff.dll is up to date.
qwbmp.dll is up to date.
qwebp.dll is up to date.
qwindows.dll is up to date.
qtposition_positionpoll.dll is up to date.
qtposition_serialnmea.dll is up to date.
qtposition_winrt.dll is up to date.
windowsprintersupport.dll is up to date.
qwindowsvistastyle.dll is up to date.
icudtl.dat is up to date.
qtwebengine_devtools_resources.pak is up to date.
qtwebengine_resources.pak is up to date.
qtwebengine_resources_100p.pak is up to date.
qtwebengine_resources_200p.pak is up to date.
en-US.pak is up to date.
Run Code Online (Sandbox Code Playgroud)

这是依赖信息:

F:\Common\coffey\CoPilotTesterV23.0>dumpbin /dependents app739.exe
Microsoft (R) COFF/PE Dumper Version 14.24.28316.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file app739.exe

File Type: EXECUTABLE IMAGE

  Image has the following dependencies:

    BTI42964.dll
    Qt5WebEngineWidgets.dll
    Qt5Widgets.dll
    Qt5Gui.dll
    Qt5SerialPort.dll
    Qt5WebChannel.dll
    Qt5Core.dll
    MSVCP140.dll
    WS2_32.dll
    BTICard64.dll
    KERNEL32.dll
    VCRUNTIME140.dll
    VCRUNTIME140_1.dll
    api-ms-win-crt-runtime-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-stdio-l1-1-0.dll
    api-ms-win-crt-string-l1-1-0.dll
    api-ms-win-crt-math-l1-1-0.dll
    api-ms-win-crt-convert-l1-1-0.dll
    api-ms-win-crt-locale-l1-1-0.dll
    api-ms-win-crt-filesystem-l1-1-0.dll
    api-ms-win-crt-time-l1-1-0.dll
    SHELL32.dll
    api-ms-win-crt-utility-l1-1-0.dll

  Summary

        C000 .data
       13000 .pdata
       FF000 .rdata
        3000 .reloc
       4C000 .rsrc
      1BC000 .text
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

小智 5

我使用 Qt 5.15 和 VS 2019 时遇到同样的问题。但是,仅当我的应用程序部署在网络驱动器上时才会出现此问题。相同的文件集合(其中 qt5Core.dll 位于同一文件夹中)在所有本地驱动器上都可以正常工作。