安装驱动程序包时出现WiX DifxApp错误:无法获取与驱动程序包关联的服务
我正在尝试安装的驱动程序是Windows 7x64的内核迷你过滤器驱动程序。我正在测试安装程序的机器处于测试模式,驱动程序文件和.cat文件都用我的证书签名。我按照说明进行了操作,但仍然无法安装驱动程序。我确保在.inf文件的安装驱动程序包时出现WiX DifxApp错误:无法获取与驱动程序包关联的服务,wix,driver,windows-7-x64,inf,minifilter,Wix,Driver,Windows 7 X64,Inf,Minifilter,我正在尝试安装的驱动程序是Windows 7x64的内核迷你过滤器驱动程序。我正在测试安装程序的机器处于测试模式,驱动程序文件和.cat文件都用我的证书签名。我按照说明进行了操作,但仍然无法安装驱动程序。我确保在.inf文件的[version]部分添加了DriverPackageType=filesystemminiflter 以下是我的WiX安装程序xml的摘录: <Directory Id="Driver" Name="Driver"> <
[version]
部分添加了DriverPackageType=filesystemminiflter
以下是我的WiX安装程序xml的摘录:
<Directory Id="Driver" Name="Driver">
<Component Id="MY-DRIVER-NAME" Guid="MY-GUID">
<File
Id="DRIVER_FILE1_SYS"
Name="DriverFile1.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE2_SYS"
Name="DriverFile2.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE3_SYS"
Name="DriverFile3.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE4_SYS"
Name="DriverFile4.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE_INF"
Name="DriverFile.inf"
DiskId="1"
Source="path_to_inf_file"
Vital="yes"
System="yes"
ReadOnly="yes"/>
<File
Id="DRIVER_FILE_CAT"
Name="DriverFile.cat"
DiskId="1"
Source="path_to_cat_file"
Vital="yes"
System="yes"
ReadOnly="yes"/>
<difx:Driver Legacy="yes"/>
</Component><!--LEGDriver-->
使用以下命令安装.inf文件没有问题:
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 path-to-inf\infname.inf
它还通过“右键单击安装”成功安装
手动在计算机上安装.msi文件时,将上面的“RUNDLL32.EXE”命令作为自定义操作EXECOMAND添加到我的WiX安装程序(而不是使用DifxApp)会起作用,但是,通过Active Directory服务器(每台计算机GPO)的GPO部署时,安装不会完成。(除INF安装外的所有操作都已完成) 答案是RUNDLL32.exe命令的修改版本。把132换成131
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 131 path-to-inf\infname.inf
据
128+4=132=要求用户在需要时重新启动
128+3=131=不要问,只需重新启动
由于这是在任何用户登录之前从AD部署并在引导时安装的,我想当程序试图创建一个弹出框询问用户是否要关机时,它会失败。将其设置为131会导致它在用户登录之前安装并重新启动计算机。在计算机完成双重重启后,就可以开始了
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 131 path-to-inf\infname.inf