我想在include文件中嵌入包含文件。为什么我不能在Inno Setup中做到这一点?

时间:2015-12-14 21:40:54

标签: preprocessor inno-setup preprocessor-directive

让我说我有一个Inno安装文件(让我们称之为master.iss),文件部分如下:

[Files]
#include PathToIncludeFile\IncludeFile.iss

美丽而精致。 IncludeFile.iss的内容有效地插入到master.iss存在的#include文件中。

所以现在我希望#include文件的内容嵌套在更多包含中。所以IncludeFile.iss看起来像这样:

#include C:\PathToFile\FileWithRealFilesDataForProject1.iss
#include C:\PathToFile\FileWithRealFilesDataForProject2.iss
#include C:\PathToFile\FileWithRealFilesDataForProject3.iss
#include C:\PathToFile\FileWithRealFilesDataForProject4.iss
#include C:\PathToFile\FileWithRealFilesDataForProject5.iss
#include C:\PathToFile\FileWithRealFilesDataForProject6.iss

Inno Setup编译Master.iss的编译器会说

  

(文件:PathToIncludeFile \ IncludeFile.iss \ n第1行:\ n第11列:)   [ISSP]未声明的标识符C"

我想我可以用批处理文件或其他东西实现我想要的东西,但是如果我能用嵌套的#include来做这件事就会更直接。

BTW:我目前的Inno Setup Compiler是5.5.6(u)

1 个答案:

答案 0 :(得分:1)

您可以嵌套包含文件。

您的问题是,在Inno Setup预处理器中,字符串文字必须用双引号(或单引号)括起来,如:

adsLoaded

当省略引号时,预处理器会尝试将#include "C:\PathToFile\FileWithRealFilesDataForProject1.iss" 参数解释为表达式。因此,它将#include(前导字母数字序列)视为标识符。

请参阅Inno Setup预处理器文档中的以下主题:

出于同样的原因,你的主要包括,你在帖子中的方式,也不会编译。你必须用双引号括起来。

为此:

C

我正在

  

[ISPP]未声明的标识符:“PathToIncludeFile”。

(如预期的那样)