我想将包含文件嵌套在包含文件中。为啥我不能在 Inno Setup 中这样做?
Posted
技术标签:
【中文标题】我想将包含文件嵌套在包含文件中。为啥我不能在 Inno Setup 中这样做?【英文标题】:I want to nest include files inside include files. Why cant I do that in Inno Setup?我想将包含文件嵌套在包含文件中。为什么我不能在 Inno Setup 中这样做? 【发布时间】:2015-12-14 21:40:53 【问题描述】:假设我有一个 Inno 设置文件(我们称之为 master.iss
),其中包含如下文件部分:
[Files]
#include PathToIncludeFile\IncludeFile.iss
这很好用。 IncludeFile.iss
的内容被有效地插入到存在#include
的master.iss
文件中。
所以现在我想将#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
s 来实现这一点,那就更直接了。
顺便说一句:我当前的 Inno Setup Compiler 是 5.5.6 (u)
【问题讨论】:
【参考方案1】:您可以嵌套包含文件。
您的问题是,在 Inno Setup 预处理器中,字符串文字必须用双引号(或单引号)括起来,例如:
#include "C:\PathToFile\FileWithRealFilesDataForProject1.iss"
当您省略引号时,预处理器会尝试将 #include
参数解释为表达式。因此,它将C
(前导字母数字序列)视为标识符。
在 Inno Setup Preprocessor 文档中查看这些主题:
Expression Syntax。 #include 指令出于同样的原因,您在帖子中的主要包含方式也不会编译。你必须用双引号括起来。
为此:
#include PathToIncludeFile\IncludeFile.iss
我来了
[ISPP] 未声明的标识符:“PathToIncludeFile”。
(如预期)
【讨论】:
以上是关于我想将包含文件嵌套在包含文件中。为啥我不能在 Inno Setup 中这样做?的主要内容,如果未能解决你的问题,请参考以下文章