我正在使用Inno Setup版本5.4.2。

我想定义要复制的文件的路径([Files]节中的Source:参数分为两部分,基本路径和子目录名称,这些文件用于特殊文件(如.dlls)。
我尝试了以下方法:

#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs {#MyAppSetupDir}"\DLLs"
[Files]
Source: {#MyAppSetupDir}\MyApp.exe; DestDir: {app}; Flags: ignoreversion
Source: {#MyAppSetupDLLs}\mstext35.dll; DestDir: {app}; Flags: ignoreversion

但是我得到以下编译错误
[ISPP] Expression expected but opening brace ("{") found.

我还尝试将花括号括在“”中,例如
#define MyAppSetupQtDLLs "{#MyAppSetupDir}\DLLs"

但是这次我得到了
Error: Source file "D:\MyApp\setup\{#MyAppSetupDir}\DLLs\mstext35.dll" does not exist.

因此,ISSP正确替换了MyAppSetupDir变量,但随后再次放置了简单文本,好像它不能识别指令一样。

我到处搜索,并且已经找到有关使用{commonappdata}discussion,但是无论在文档中还是在KB中,我都找不到如何执行此操作的方法。
我真的很感谢一些提示,因为看起来我很接近,但是没有找到正确的解决方案。

最佳答案

#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs MyAppSetupDir + "\DLLs"

10-07 19:10