Inno Setup:如何为Select Destination Location页面指定多个目录?

时间:2017-02-09 19:21:30

标签: installer inno-setup

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

我的[Files]部分如下:

[Files]
Source: "C:\Users\..\x64\my.dll"; DestDir: "{pf64}\{#MyPath}"; Check: IsWin64
Source: "C:\Users\..\my.dll"; DestDir: "{pf32}\{#MyPath}"

这一切都很好,除非我在"选择目的地位置"中覆盖安装目录。页

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

有没有办法设置安装程序,以便选择目的地位置"得到两次,一次是32位,一次是64位?

1 个答案:

答案 0 :(得分:0)

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

有关示例,请参阅:

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

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

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

有关完整的解决方案,请参见
Use two/multiple selected directories from custom page in Files section

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