InstallShield 2010 Premiere:64位& 32位驱动程序安装

时间:2009-12-30 09:04:02

标签: installer windows-installer driver installshield

我正在使用InstallShield 2010 Premiere。

我有一个基本的MSI项目,使用Driver向导和DifxApp安装应用程序和32位驱动程序。

我正在尝试添加一个64位驱动程序,如果系统是64位,则会安装该驱动程序。但是,添加此64位驱动程序时,安装(在32位系统上)失败,我在MSI日志中找到的唯一内容是:

  

MSIProcessDrivers返回值3。

我甚至没有在64位系统上试用它。

有没有办法使用单个安装程序文件来完成此操作?

编辑: 我注意到问题出在DifxApp.dll上。根据为驱动程序选择的LAST体系结构,installshield只保存1个dll:如果我有2个驱动程序并且我将其中一个设置为目标x64,则DifxApp.dll将是x64中的一个,而另一种选择方式X32。

我可以手动插入x64和amp; x32 DifxApp.dll,但我无法找到一种方法来使Installshield创建的自定义操作有条件地获取x32或x64 dll。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

好吧,由于我未能使用InstallShield向导找到合适的解决方案,我回到了自己的自定义操作,该操作调用了DPInst.exe。 每个自定义操作都会根据操作系统的类型有条件地触发。 64位自定义操作将调用DPInst.exe 64位版本,同样适用于32位。

答案 1 :(得分:1)

无法在一个安装程序中对x86和x64进行DIFx配置。必须是两个包,并在这些包中修改difxapp(a).dll的引用,具体取决于操作系统的优势。

所以我的方法是:

  • 1个安装包
  • 2发行标志x86和x64包含对驱动程序的引用(例如,都配置为x86)
  • 使用相关的发布标志构建x86包
  • 通过自动化mofify对x64
  • 的difx引用
  • 使用相关的发布标志构建x64包

此外,两个软件包都必须具有相关的启动条件,才能在其他操作系统风格上运行它们。

托拜厄斯

答案 2 :(得分:0)

您的安装程序似乎缺少组件条件。 你应该同时拥有x32和x64驱动程序设置在不同的组件中,并通过测试VersionNT64属性有条件地安装每个驱动程序。

例如:x64组件将具有“VersionNT64”作为条件,而x32组件将具有“Not VersionNT64”。

答案 3 :(得分:0)

您应该注意,在一般情况下,无法使用32位和64位的单个安装程序。请查看this以获取更多信息。