InnoSetup:如何在安装 64 位应用程序时运行 32 位安装程序,找不到文件



我正在使用InnoSetup安装32位桌面应用程序,并在"运行"部分中启动64位Firebird安装程序。我在Win10工作。

但是无论我尝试做什么,我都会收到一条错误消息,说它无法运行并且找不到该文件,错误 2。

FB3.0安装程序文件在资源管理器中可见,可以通过资源管理器启动即可。32 位 Firebird 安装程序在我的应用程序安装中启动良好。

我一直在使用 {tmp} 目录,并尝试了其他目录,包括 C:\Temp。

我有权限必需=管理员并尝试了架构安装64位模式= x64 ia64。那行不通。我尝试确保在启动安装程序时手动选择"以管理员身份运行"。

标志包括"标志:runascurrentuser waituntilterminate install post64bit",用于运行部分中的Firebird安装程序。

我尝试在我的应用程序启动的 BeforeInstall 中使用 Exec((,但这给出了相同的错误消息。

在InnoSetup帮助下的"64位安装限制"下,它说:

"你不能在[代码]部分中加载/使用64位DLL,因为Windows不允许32位进程加载64位DLL(反之亦然(。但是,32 位进程可以启动 64 位 EXE。使用 Exec 函数或 [运行] 部分来执行此操作。

因此,我仍然认为我错过了一些东西。

在刚刚尝试启动FB3.0安装程序的安装程序的测试运行期间,64位,最初也不会运行并出现相同的错误,但是一旦我明确添加了PrivilegesRequired=admin,它就起作用了。或者,在InnoScript中,工具:选项:常规;检查以管理员身份运行(它没有设置权限必需=管理员,顺便说一句,不确定它在脚本中反映的位置。

无论如何,一旦我包含我的应用程序的安装(32位(,就会出现上面的错误。

关于如何使用我的 64 位应用程序安装在 Inno 中运行 32 位安装程序的任何想法?

谢谢!

我能够创建一个安装程序来加载/运行一个简单的应用程序并启动 Firebird 3.0 x64 安装程序而不会出现任何错误。

由此,我最终发现Firebird 3,0的命令行参数导致了此问题,即使参数是从手册中获取的。

导致错误的参数是:/COMPONENTS="ServerComponent\SuperServerComponent,ServerComponent,DevAdminComponent,ClientComponent",下面是/TASKS="逗号分隔的任务名称列表",在我的例子中包括/TASKS="UseSuperServerTask\UseGuardianTask, et al...

我不得不从参数列表中删除"服务器组件\超级服务器组件"。我不确定超级服务器是否以这种方式正确设置,但是Firebird 3.0 x64安装程序现在可以在我的应用程序安装程序中正常运行。

无论如何,我使用一个单独的firebird.conf文件,该文件在安装firebird后复制到Firebird目录中,这将设置超级服务器。谢谢你的回复,马丁。

我想这篇文章的附加标志应该包括"火鸟"不知道如何在发布后添加标志。

最新更新