我想在包含文件中嵌套包含文件。为什么我不能在 Inno Setup 中这样做?
I want to nest include files inside include files. Why cant I do that in Inno Setup?
假设我有一个 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
的编译器会说
(File: PathToIncludeFile\IncludeFile.iss \n Line 1: \n Column 11:)
[ISSP] Undeclaired Identifier C"
我想我可以用批处理文件或其他东西来实现我想要的,但是如果我可以用嵌套的 #include
s 来做到这一点会更直接。
顺便说一句:我当前的 Inno Setup 编译器是 5.5.6 (u)
您可以嵌套包含文件。
您的问题是在 Inno Setup 预处理器中,字符串文字必须用双引号(或单引号)引起来,例如:
#include "C:\PathToFile\FileWithRealFilesDataForProject1.iss"
当您省略引号时,预处理器会尝试将 #include
参数解释为表达式。因此它将 C
(前导字母数字序列)视为标识符。
请参阅 Inno Setup 预处理器文档中的这些主题:
出于同样的原因,您的主要包含(您在 post 中的方式)也不会编译。您必须用双引号将其括起来。
为此:
#include PathToIncludeFile\IncludeFile.iss
我得到
[ISPP] Undeclared identifier: "PathToIncludeFile".
(符合预期)
假设我有一个 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
的编译器会说
(File: PathToIncludeFile\IncludeFile.iss \n Line 1: \n Column 11:)
[ISSP] Undeclaired Identifier C"
我想我可以用批处理文件或其他东西来实现我想要的,但是如果我可以用嵌套的 #include
s 来做到这一点会更直接。
顺便说一句:我当前的 Inno Setup 编译器是 5.5.6 (u)
您可以嵌套包含文件。
您的问题是在 Inno Setup 预处理器中,字符串文字必须用双引号(或单引号)引起来,例如:
#include "C:\PathToFile\FileWithRealFilesDataForProject1.iss"
当您省略引号时,预处理器会尝试将 #include
参数解释为表达式。因此它将 C
(前导字母数字序列)视为标识符。
请参阅 Inno Setup 预处理器文档中的这些主题:
出于同样的原因,您的主要包含(您在 post 中的方式)也不会编译。您必须用双引号将其括起来。
为此:
#include PathToIncludeFile\IncludeFile.iss
我得到
[ISPP] Undeclared identifier: "PathToIncludeFile".
(符合预期)