在Inno Setup中使用源文件名中的常量

时间:2014-01-20 10:49:38

标签: constants inno-setup

我想在Inno安装程序中包含程序文件\ my org \ my app中的文件。该文件实际上存在于c:\ program files(x86)\ my org \ my app中,但我希望能够在32位和64位版本的Windows上编译设置,所以我想使用常量作为源文件名:

[Files]
Source: "{pf}\my org\my app\myapp.exe"; DestDir: "{app}"

Inno设置只是按字面意思对待{pf},我收到一条消息,说它无法找到文件“{pf} \ my org \ my app \ myapp.exe”

在帮助中,如果使用外部标志,则只能使用常量作为源文件,但这仅适用于目标系统上已存在的文件。

还有一个类似的问题表明你可以在源文件名中使用常量,但我无法使其工作:

How to use parent of a directory in a Source parameter of the Files section?

我也尝试过设置:

[Setup]
SourceDir={pf}\my org\my app 

但是编译器再次将{pf}视为文字文本而不是替换它,这与更换常量的DefaultDirName不同。

我正在使用Inno Setup版本5.5.3(a)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用预处理器。它没有所有那些有用的目录常量,但它可以从环境变量中读取,它也为您提供了大多数系统路径名。在您的示例中:

[Setup]
#define ProgramFiles GetEnv("ProgramFiles")
SourceDir={#ProgramFiles}\my org\my app

特别注意程序文件目录的位数。像AppData这样的其他目录问题较少。