【发布时间】:2020-02-14 13:16:26
【问题描述】:
我使用 Inno Setup 安装程序安装我的 Win32 应用程序,它主要安装在 Windows 10 上。有一些 USB 加密狗(基本上是 USB 串行端口)的驱动程序要与我的应用程序一起安装。驱动由文件和目录组成:
amd64 (folder)
x86 (folder)
dfu.cat
dfu.inf
usbserial.cat
usbserial.inf
我将dpinst32.exe 和dpinst64.exe 添加到驱动程序的文件夹中,并从我的安装程序中调用dpinst32 或dpinst64(基于Windows 版本)。
但是,在某些 PC 上,我最终没有安装驱动程序。
我的安装程序安装驱动程序的正确方法是什么?
编辑:这是来自dpinst64.exe /Q /c的日志
INFO: Option set: dumping log info to console.
INFO: Current working directory: 'F:\windrv'
INFO: Running on path 'F:\windrv'
INFO: No valid 'dpinst.xml' file provided.
INFO: Install option set: Running in quiet mode. Suppressing Wizard and OS popups.
INFO: Found driver package: 'F:\windrv\dfu.inf'.
INFO: Found driver package: 'F:\windrv\usbserial.inf'.
INFO: Preinstalling 'f:\windrv\dfu.inf' ...
INFO: ENTER: DriverPackagePreinstallW
INFO: RETURN: DriverPackagePreinstallW (0xE0000242)
INFO: Preinstalling 'f:\windrv\usbserial.inf' ...
INFO: ENTER: DriverPackagePreinstallW
INFO: RETURN: DriverPackagePreinstallW (0xE0000242)
INFO: Returning with code 0x80020000
【问题讨论】:
-
仅供参考:这是我使用的 inno 设置指令:
-
文件名:"{tmp}\windrv\dpinst32.exe";参数:“/S /Q”;检查:不是 IsWin64 文件名:“{tmp}\windrv\dpinst64.exe”;参数:“/S /Q”;检查:IsWin64
-
所以我可以在 inno 设置日志中看到,在一台计算机上,调用 dpinst64.exe /S /Q 返回 2147614720 (0x80020000) 退出代码。任何的想法?如果我手动(通过双击)运行 dpinst64.exe,它会安装驱动程序。然后,下一次,当我的安装程序启动并调用 dpinst64.exe /S /Q 时,返回码是 512(这可能意味着驱动程序已经安装)。那么 0x80020000 意味着什么 dpinst 在静默模式下启动时会失败?
-
问题出在
dpinst64.exe,而不是Inno Setup。 -
当操作系统(尚未)信任制造商时,我遇到了与 dpinst 类似的问题,安装未完成但您没有收到错误消息。尝试使用 /SW 而不是 /S 运行 dpinst,如果弹出一个窗口,这可能是您的问题。
标签: windows installation inno-setup dpinst