インストールしようとしているドライバーは、Windows 7x64 用のカーネル ミニフィルター ドライバーです。インストーラーをテストしているマシンはテスト モードであり、ドライバー ファイルと .cat ファイルはすべて、作成した証明書で署名されています。こちらの手順に従いましたが、まだドライバーをインストールできません。.inf ファイルのセクションに必ず追加DriverPackageType = FileSystemMinifilter
しました。[version]
以下は、私の 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-->
「Id」、「Name」、および「Source」パスが変更されました (上記の値は実際には使用していませんが、単なる例です)。インストーラーのビルドに問題はありません。で実行するとmsiexec /i MyMsi.msi /l*v install.log
、エラーが表示されますDIFXAPP: ERROR: Could not get services associated with driver package
次に、変更を元に戻そうとし、さらにいくつかのエラーが発生します。
ERROR: Unable to revert to a previous driver store for service ''.
ERROR: Unable to open service '' to delete it because of error 0x7B
.inf ファイルは、次のコマンドで問題なくインストールできます。
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 path-to-inf\infname.inf
また、「右クリック インストール」でも正常にインストールされます。
DifxApp を使用する代わりに、上記の「RUNDLL32.EXE」コマンドをカスタム アクション ExeCommand として WiX インストーラーに追加すると、マシンに .msi ファイルを手動でインストールするときに機能しますが、Active Directory サーバー (コンピューターごとの GPO) から GPO を介して展開するときに機能します。 )、インストールは完了しません。(INF インストール以外のすべてが完了します)。