基于INF的打印机驱动程序的WIX安装程序

mhs*_*mhs 6 installer wix wix3.6

我正在尝试为打印机驱动程序创建一个安装程序,使用WIX

我有

  • 一些Dlls
  • 一个*.cat文件
  • 一个*.gdp文件
  • 一个*.inf文件

我正在考虑使用INF来部署驱动程序,但不知道如何实现它.

我也播下了这个问题,(可能是重复的)但作为一个初学者我不能完全理解如何做到这一点.

我需要通过自己和Write Registry将这些DLL和其他文件复制到相关文件夹中.或者是他们使用INF文件通过WIX引擎完成任务的任何简单方法?如果是的话,任何人都可以教我应该遵循的步骤吗?


我尝试将所有必要的文件复制到文件夹

  <Component Id="PRNDRV_cat" Guid="{4fba0d21-64bb-458d-9b78-23aed7a39d14}" Directory = "PrinterFolder">
    <difx:Driver Legacy='yes' />
      <File Id="Catalog" Name="sielprndrv.cat" Source="Printer\prndrv.cat" />
      <File Id="DataBase" Name="SIELPRNDRV.gpd" Source="Printer\PRNDRV.gpd" />
      <File Id="Info" Name="SIELPRNDRV.inf" KeyPath="yes" Source="Printer\PRNDRV.inf" />
      <File Id="ini" Name="SIELPRNDRV.ini" Source="Printer\PRNDRV.ini" />
  </Component>
Run Code Online (Sandbox Code Playgroud)

并使用以下命令编译

candle -ext WixDifxAppExtension SielDrivers.wxs
light -ext WixUIExtension -ext WixDifxAppExtension SielDrivers.wixobj difxapp_x64.wixlib -o Setup.msi
Run Code Online (Sandbox Code Playgroud)

安装后,我可以看到它已在"程序和功能"中列出,但没有作为打印机添加到"设备和打印机"中.

我错过了什么?

小智 1

您应该检查setupapi.dev.logsetupapi.app.log
您可能知道错误代码。您可以在%SystemRoot%\inf
找到日志。https://learn.microsoft.com/en-us/windows-hardware/drivers/install/setupapi-device-installation-log-entries


在“设备和打印机”中使用“添加打印机”按钮是否成功?
如果没有,您应该检查驱动程序包。
您可以复制 Dll 来使用 INFCopyFiles指令,也可以注册 Dll 来使用 INFRegisterDlls指令。