Installation Inno设置:如何为“选择目标位置”页面指定多个目录?

Installation Inno设置:如何为“选择目标位置”页面指定多个目录?,installation,inno-setup,Installation,Inno Setup,我有一个安装程序,它包含一个32位和64位dll。在64位系统上,我想安装两个版本,在32位系统上,只安装32位版本 我的[文件]部分如下: [Files] Source: "C:\Users\..\x64\my.dll"; DestDir: "{pf64}\{#MyPath}"; Check: IsWin64 Source: "C:\Users\..\my.dll"; DestDir: "{pf32}\{#MyPath}" 除了在“选择目标位置”页面中覆盖安装目录之外,这一切都可以正常工作

我有一个安装程序,它包含一个32位和64位dll。在64位系统上,我想安装两个版本,在32位系统上,只安装32位版本

我的
[文件]
部分如下:

[Files]
Source: "C:\Users\..\x64\my.dll"; DestDir: "{pf64}\{#MyPath}"; Check: IsWin64
Source: "C:\Users\..\my.dll"; DestDir: "{pf32}\{#MyPath}"
除了在“选择目标位置”页面中覆盖安装目录之外,这一切都可以正常工作

  • 首先,它只让我覆盖
    pf32
    路径
  • 其次,如果覆盖安装目录,则不会安装任何内容

有没有办法设置安装程序,使“选择目标位置”显示两次,一次用于32位位置,一次用于64位位置?

最简单的方法是为第二个目录添加一个附加页面

有关示例,请参见:

  • 关于ISXKB的文章

当然,您也可以将第二个框添加到标准的“选择目的地位置”页面。但这是更多的工作


实际上,更容易实现的可能是完全禁用“选择目标位置”页面(通过设置为
yes
),并使用上述技术实现一个新的类似页面

在这种情况下,请确保将安装目录设置为选定的自定义目录之一,以便Inno安装程序知道将卸载数据存储到何处。否则,Inno安装程序仍将创建由设置的目录(并将卸载数据存储在其中)。或者将设置为
。虽然这会使Inno安装程序将卸载信息存储到
{win}
,但这并不好

有关完整的解决方案,请参见


至于第二个问题:问题是您实际使用
{pfXX}
常量将文件安装到固定位置,即“程序文件”。要安装到用户在“选择目标位置”页面上选择的位置,必须使用