我正在使用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。
有什么想法吗?
答案 0 :(得分:1)
好吧,由于我未能使用InstallShield向导找到合适的解决方案,我回到了自己的自定义操作,该操作调用了DPInst.exe。 每个自定义操作都会根据操作系统的类型有条件地触发。 64位自定义操作将调用DPInst.exe 64位版本,同样适用于32位。
答案 1 :(得分:1)
无法在一个安装程序中对x86和x64进行DIFx配置。必须是两个包,并在这些包中修改difxapp(a).dll的引用,具体取决于操作系统的优势。
所以我的方法是:
此外,两个软件包都必须具有相关的启动条件,才能在其他操作系统风格上运行它们。
托拜厄斯
答案 2 :(得分:0)
您的安装程序似乎缺少组件条件。 你应该同时拥有x32和x64驱动程序设置在不同的组件中,并通过测试VersionNT64属性有条件地安装每个驱动程序。
例如:x64组件将具有“VersionNT64”作为条件,而x32组件将具有“Not VersionNT64”。
答案 3 :(得分:0)
您应该注意,在一般情况下,无法使用32位和64位的单个安装程序。请查看this以获取更多信息。