Installation InstallShield 2010首映式:64位&;32位驱动程序安装
我正在使用InstallShield 2010 Premiere 我有一个基本的MSI项目,使用驱动程序向导和DifxApp安装一个应用程序和一个32位驱动程序 我正在尝试添加一个64位驱动程序,如果系统是64位的,它将被安装。但是,当添加此64位驱动程序时,安装(在32位系统上)失败,我在MSI日志中找到的唯一内容是: MSIProcessDrivers返回值3 我甚至没有在64位系统上尝试过 有没有一种方法可以使用一个安装程序文件来实现这一点 编辑: 我注意到问题出在DifxApp.dll上。根据为驱动程序选择的上一个体系结构,installshield仅保存1个dll:如果我有2个驱动程序,并且我将其中一个设置为目标x64,则DifxApp.dll将是x64中的一个,而在选择x32时则相反 我可以手动插入x64和x32 DifxApp.dll,但我无法找到一种方法使Installshield创建的自定义操作有条件地接受x32或x64 dllInstallation InstallShield 2010首映式:64位&;32位驱动程序安装,installation,windows-installer,driver,installshield,Installation,Windows Installer,Driver,Installshield,我正在使用InstallShield 2010 Premiere 我有一个基本的MSI项目,使用驱动程序向导和DifxApp安装一个应用程序和一个32位驱动程序 我正在尝试添加一个64位驱动程序,如果系统是64位的,它将被安装。但是,当添加此64位驱动程序时,安装(在32位系统上)失败,我在MSI日志中找到的唯一内容是: MSIProcessDrivers返回值3 我甚至没有在64位系统上尝试过 有没有一种方法可以使用一个安装程序文件来实现这一点 编辑: 我注意到问题出在DifxApp.dll上
有什么想法吗?您的安装程序似乎缺少组件条件。 您应该在不同的组件中设置x32和x64驱动程序,并通过测试属性有条件地安装每个驱动程序
例如:x64组件的条件是“VersionNT64”,而x32组件的条件是“notversionnt64”。好吧,由于我无法使用InstallShield向导找到正确的解决方案,我返回到我自己的自定义操作,改为调用DPInst.exe。
每个自定义操作都会根据操作系统的类型有条件地触发。64位自定义操作将调用DPInst.exe 64位版本,32位版本也是如此。您应该注意,在一般情况下,32位和64位的单一安装程序是不可能的。查看以了解更多信息。无法在一个安装程序中为x86和x64配置DIFx。必须是两个包,并且在这些包中根据操作系统修改difxapp(a).dll的引用 因此,我的方法是:
- 1安装包
- 2个包含对驱动程序引用的发布标志x86和x64(如配置为x86)
- 使用相关发布标志生成x86包
- 通过自动化将difx参考文件发送到x64
- 使用相关发布标志生成x64包
托拜厄斯(Tobias)我最初就是这么做的。但是,Installshield仅保存DifxApp.dll的一个副本(x32或x64)。我需要它使用不同的dll根据我的条件。你的安装程序是未压缩的吗?如果是这样,您需要设置源位置属性-我已经设置了2个不同的源位置。但是DifxApp.dll不是我放在那里的文件,而是InstallShield向导。