【问题标题】: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 的内容被有效地插入到存在#includemaster.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"

我想我可以使用批处理文件或其他东西来实现我想要的,但如果我可以使用嵌套的 #includes 来实现这一点,那就更直接了。

顺便说一句:我当前的 Inno Setup Compiler 是 5.5.6 (u)

【问题讨论】:

    标签: preprocessor inno-setup preprocessor-directive


    【解决方案1】:

    您可以嵌套包含文件。


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

    #include "C:\PathToFile\FileWithRealFilesDataForProject1.iss"
    

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

    在 Inno Setup Preprocessor 文档中查看这些主题:


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

    为此:

    #include PathToIncludeFile\IncludeFile.iss
    

    我来了

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

    (如预期)

    【讨论】:

      猜你喜欢
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2019-12-06
      相关资源
      最近更新 更多