当前位置: 首页 > 知识库问答 >
问题:

inno Setup 32位和64位dll安装

夏建弼
2023-03-14

如果操作系统是64位,我想安装一个32位的DLL到程序文件(x86)文件夹和64位的DLL到程序文件文件夹并分别注册它们。如果是32位操作系统,我只想将文件复制到正常程序文件夹并注册。

如何在Inno安装程序中执行此操作?64位DLL也会被64位regsvr32程序注册吗?

这是我到目前为止的代码。它在 32 位操作系统上工作正常,但在 64 位操作系统上,它会转储程序文件 (x86) 中的两组文件。

[Files]
Source: D:\..\32bit files\mylibrary.dll; DestDir: {app}; \
    Flags: restartreplace ignoreversion regserver 32bit

Source: D:\..\64bit files\mylibrary.dll; DestDir: {app}; \
    Flags: restartreplace ignoreversion regserver 64bit; Check: IsWin64

我已经看过64BitTwoArch.iss示例,但它告诉如何进行32位或64位安装,而不是32位和64位安装。

共有2个答案

沈冠宇
2023-03-14

无法仅使用{app}变量使其工作,因为您想同时安装在两个目标上。

通过像这样硬编码程序文件文件夹解决了这个问题

#define MyAppName "TestAPP"

[Files]
Source: D:\..\32bit files\mylibrary.dll; DestDir: {pf32}\{#MyAppName}; \
    Flags: restartreplace ignoreversion regserver 32bit

Source: D:\..\64bit files\mylibrary.dll; DestDir: {pf64}\{#MyAppName}; \
    Flags: restartreplace ignoreversion regserver 64bit; Check: IsWin64

这对我有用。Windows 以这种方式自动加载 32 位应用的 32 位 dll 和 64 位应用的 64 位 dll。

洪旻
2023-03-14

我在以下方面取得了成功:

[Files]
Source: D:\..\32bit files\mylibrary.dll; DestDir: {app}; \
    Flags: restartreplace ignoreversion regserver 32bit; **Check: "not IsWin64"**

Source: D:\..\64bit files\mylibrary.dll; DestDir: {app}; \
    Flags: restartreplace ignoreversion regserver 64bit; Check: IsWin64
 类似资料:
  • 标题说明了一切。我确实看到过类似的问题,有人建议关于http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame,但是所有的pygame可下载文件都是.whl格式的,我不知道如何在Windows7上运行。我尝试了“CD[directory]>pip安装[filename]”,但没有成功。

  • 问题内容: 我已经使用Java一段时间了,而我典型的设置新开发机的习惯要求从Oracle站点下载并安装最新的JDK。 今天这引发了一个不寻常的问题, 回想起来,我已经安装了之前的两个版本,并且很高兴将普通的工具链插入(Eclipse)。在我的日常编程中,我不会回想起曾经因为使用64位JRE(或为此目的而针对64位JRE)而不得不以其他方式进行更改或思考的事情。 根据我对64位和32位的理解- 确实

  • 问题内容: 使用Java本机接口时,我遇到了一个导致此错误的问题。我相信这是因为我使用MinGW编译了.dll,而我的系统是64位的,因此我的Java运行于64位,而MinGW编译为32位的.dll。无论如何,有没有强制我的Java在32位上运行? 问题答案: 您将必须安装32位JVM,然后才能运行代码。 如果要分发应用程序,则将要构建DLL的32位和64位版本。然后,使用以下技术来加载正确的DL

  • 有些程序似乎缺少DLL文件,但即使在手动下载文件后,也会出现入口点错误。在使用依赖步行器之后(http://www.dependencywalker.com)对于exe文件,除这两个文件外,找到并下载了更多缺少的DLL文件。 API-MS-WIN-CORE-SHUTDOWN-L1-1-1。动态链接库 EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL 不知道在哪里

  • 我在tcnative-1.dll不能加载AMD 64位.dll在IA 32位平台上,除了这是相反的,当运行tomcat-7.0.47下面是我的详细信息和日志。我已经尝试跟随上面发布的所有内容,但没有运气...请帮助我! 此外,我还下载了64位JRE,并仔细检查了我的java版本 C:\users\franklu>java-version java version“1.7.0_55”java(TM)

  • 我已经在Java工作了8个月。目前,我正在使用JNA加载一个第三方DLL,它在32bit WinXP和32bit Win7机器上运行良好。 我将使用procexp来查找是否缺少任何依赖项。我会相应地更新这篇文章。 请提供您的专家建议。提前感谢!