我的安装程序包在 Windows 8 64 位上失败,但在 Windows7 64 位上运行得很好。现在我知道在 Windows 8 中需要对 INF 包进行签名,并且我解决了这个问题,但现在我遇到了错误(0x65B),它没有提供任何细节。我花了相当多的时间在谷歌上搜索这是什么但没有成功。谢谢你。
以下是详细信息: MSI 日志(失败时):
MSI (s) (D0:04) [15:47:34:793]:执行操作:ActionStart(Name=MsiInstallDrivers,,) MSI (s) (D0:04) [15:47:34:793]:执行操作:CustomActionSchedule(Action=MsiInstallDrivers,ActionType=3073,Source=BinaryData,Target=InstallDriverPackages,CustomActionData=2.15{F4058B90-23CA-4E13- A562-A402ED7A4794}C:\Windows\INF\QC8500s2Driver_64bit\62QuikChem 8500 系列 2 驱动程序 64-bitLachat) MSI (s) (D0:D0) [15:47:34:809]:调用远程自定义操作。DLL:C:\Windows\Installer\MSIA78D.tmp,入口点:InstallDriverPackages DIFXAPP:输入:InstallDriverPackages() DIFXAPP:信息:“CustomActionData”属性“DIFxApp 版本”为“2.1”。 DIFXAPP:信息:“CustomActionData”属性“UI 级别”为“5”。 DIFXAPP:信息:“CustomActionData”属性“componentId”为“{F4058B90-23CA-4E13-A562-A402ED7A4794}”。 DIFXAPP:信息:“CustomActionData”属性“componentPath”为“C:\Windows\INF\QC8500s2Driver_64bit\”。 DIFXAPP:信息:“CustomActionData”属性“标志”为 0x6。 DIFXAPP:信息:“CustomActionData”属性“installState”为“2”。 DIFXAPP:信息:“CustomActionData”属性“ProductName”是“QuikChem 8500 系列 2 驱动程序 64 位”。 DIFXAPP:信息:“CustomActionData”属性“ManufacturerName”是“Lachat”。 DIFXAPP:信息:执行安装的用户的用户 SID 是“S-1-5-21-2091490019-4240601677-1653081351-1001”。 DIFXAPP:信息:打开 HKEY_USERS\S-1-5-21-2091490019-4240601677-1653081351-1001\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Components\{F4058B90-23CA-4E13-A562-A402ED7A4794}(用户的 SID: 'S-1-5-21-2091490019-4240601677-1653081351-1001') ... DIFXAPP:信息:输入:DriverPackageInstallW DIFXAPP:信息:返回:DriverPackageInstallW (0x65B) DIFXAPP:错误:安装驱动程序包“C:\Windows\INF\QC8500s2Driver_64bit\vcomhach.inf”时遇到 DIFXAPP:错误:InstallDriverPackages 失败,错误为 0x65B DIFXAPP:返回:InstallDriverPackages() 1627 (0x65B) CustomAction MsiInstallDrivers 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确) 操作于 15:47:34 结束:InstallFinalize。返回值 3。
注意两行的部分:
DIFXAPP:信息:输入:DriverPackageInstallW DIFXAPP:信息:返回:DriverPackageInstallW (0x65B)
这是我的 WIX 的创建方式
"C:\Program Files\WiX Toolset v3.8\bin\candle.exe" Qc8500s2DriverInstaller64bit.wxs -ext "C:\Program Files\WiX Toolset v3.8\bin\WixDifxAppExtension.dll" "C:\Program Files\WiX Toolset v3.8\bin\light.exe" -ext "C:\Program Files\WiX Toolset v3.8\bin\WixDifxAppExtension.dll" Qc8500s2DriverInstaller64bit.wixobj "C:\Program Files\ WiX 工具集 v3.8\bin\difxapp_x64.wixlib" -o Qc8500s2DriverInstaller64bit.msi
这就是我的 INF 包是如何被 INF2CAT'ed 和签名的:
"C:\Program Files\Windows Kits\8.0\bin\x86\Inf2Cat.exe" /driver:"C:\repo\thecompany\QC8500dotNet\Qc8500Core\Installer\Qc8500s2DriverInstallerSigned\source\inf" /os:7_X86,7_X64, 8_X86,8_X64 "C:\Program Files\Windows Kits\8.0\bin\x86\signtool.exe" 签名 /f "C:\repo\thecompany\QC8500dotNet\Qc8500Core\Installer\Qc8500s2DriverInstallerSigned\source\Certificate\hach_iim_code_sign.pfx" /p real_password_goes_here "C:\repo\thecompany\QC8500dotNet\Qc8500Core\Installer\Qc8500s2DriverInstallerSigned\source\inf\vcomhachx64.cat" "C:\Program Files\Windows Kits\8.0\bin\x86\signtool.exe" 签名 /f "C:\repo\thecompany\QC8500dotNet\Qc8500Core\Installer\Qc8500s2DriverInstallerSigned\source\Certificate\hach_iim_code_sign.pfx" /p real_password_goes_here "C:\repo\thecompany\QC8500dotNet\Qc8500Core\Installer\Qc8500s2DriverInstallerSigned\source\inf\vcomhachx64.cat"
这是我的 WIX:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:difx='http://schemas.microsoft.com/wix/DifxAppExtension'>
<Product Name='QuikChem 8500 Series 2 Driver 64-bit' Id='B195F5DC-2E60-4164-AD9B-5CD174A541BC' UpgradeCode='62B8C01D-3DDD-4300-8FCA-CD01F77F97F7'
Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='company'>
<Package Id='*' Keywords='InstallerPackage' Description="QC8500s2Driver Installer 64bit"
Comments='QC8500s2Driver 64bit' Manufacturer='company' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
<Media Id='1' Cabinet='media.cab' EmbedCab='yes' DiskPrompt="Disk #1" />
<Property Id='DiskPrompt' Value="QC8500s2Driver Installation [1]" />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='WindowsFolder' Name='WindowsFiles' >
<Directory Id='INF' Name='INF'>
<Directory Id='QC8500s2Driver_64bit' Name='QC8500s2Driver_64bit'>
<Component Id='InfFolderComponents' Guid='F4058B90-23CA-4E13-A562-A402ED7A4794' >
<File Id='vcomhach_inf' Name='vcomhach.inf' Checksum='yes' DiskId='1' KeyPath='yes' Source="source\inf\vcomhach.inf"/>
<File Id='vcomhachx86_cat' Name='vcomhachx86.cat' Checksum='yes' DiskId='1' Source="source\inf\vcomhachx86.cat"/>
<File Id='vcomhachx64_cat' Name='vcomhachx64.cat' Checksum='yes' DiskId='1' Source="source\inf\vcomhachx64.cat"/>
<difx:Driver AddRemovePrograms="no" Legacy="no" PlugAndPlayPrompt="no" Sequence='1' />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Feature Id="MainFeature" Title="MainFeature" Level="1">
<ComponentRef Id="InfFolderComponents" />
</Feature>
</Product>
</Wix>