我有一个安装程序,它包含一个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位?
答案 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。