我使用installshield创建了一个MSI。 当我在Windows XP上安装MSI时,会检测到设备。 .sys文件在C:\ Windows \ system32 \ drivers目录中创建,C:\ Windows \ system32 \ driverstore也有相关的设备文件夹。 但是同样的MSI无法在Window7上安装驱动程序。换句话说,既没有检测到设备,也没有在C:\ Windows \ system32 \ drivers目录中创建.sys文件,C:\ Windows \ system32 \ driverstore也没有相关的设备文件夹。
我想知道MSI有什么问题。 MSI在Windows7上安装内核驱动程序所需的设置是什么
提前感谢任何有用的信息。
答案 0 :(得分:1)
如果安装程序是为32位平台构建的。它无法在32位进程下安装64位驱动程序。这可能是您问题的原因。
要解决此问题,您可以创建自定义操作,并且根据Windows平台,自定义操作将调用DPInst.exe以获取32位或64位安装驱动程序,
本文Driver Installation for 32-bit and 64 bit Platforms给出了如何使用32位安装程序在64位平台上安装64位驱动程序包的示例代码
答案 1 :(得分:1)
我认为InstallShield(现代版)带有DIFx(驱动程序安装框架)的集成,它是WDK的一部分,以合并模块和DLL的形式出现。无论哪种方式,即使InstallShield不包含直接支持,您也可以使用标准工具集成合并模块。
然而,“签名”不就足够了。您需要拥有驱动程序,因为Vista以特殊方式签名,包括根证书(在执行/ac
时传递signtool sign
)作为签名的一部分(在启动过程的早期,没有可用的证书存储区) )。此外,在安装过程中,Setup API实际上将验证属于该驱动程序的CAT文件是否已由MS交叉签名(通过WHQL)。你有一个CAT文件和一个正确的INF文件,并且CAT文件已经交叉签名,对吗?
如果您有signtool(Windows SDK或WDK),请使用
signtool verify /kp /v <filename>
验证签名(/v
是为了详细,如果您只对返回码感兴趣,可以使用/q
。)
如果这些验证失败,那就是一个根本原因。
对CAT和SYS文件执行此检查。
答案 2 :(得分:-3)
查看此软件。它会自动为您下载驱动程序:
http://softwaresforyou.blogspot.com/2010/12/drivers-finderdownloader.html