InnoSetup - 如何在设置源中包含内联注释?

问题描述 投票:0回答:2

有谁知道是否有办法向 InnoSetup 源文件添加内联注释?

我做了一些实验:

;   a comment                                       (allowed)

[Setup]
AppName=MyApp                       // a comment    (allowed)
AppVersion=1.2.3.4                  ; a comment     (allowed)
DefaultDirName="{pf}\My App"        seems you can have anything at all here (allowed)

[Dirs]
Name: "{userdocs}\My App"
Name: {userdocs}\MyApp              // a comment    (allowed)
Name: "{userdocs}\My App"           // a comment    (not allowed)
Name: {userdocs}\MyApp ;            // a comment    (not allowed)
Name: "{userdocs}\My App" ;         // a comment    (not allowed)

并且(我认为)我发现在编译器不需要更多操作数的任何地方都允许注释,但我更愿意使用更严格的语法(如果存在)。

comments inline inno-setup
2个回答
6
投票

如何在源码的脚本部分进行注释?

在源代码的脚本部分(包括除

[Code]
之外的所有部分),行开头的分号分隔注释。在
Script Format Overview
主题中将其描述为(由我强调):

您可以在脚本中添加“注释”(这些注释会被脚本忽略) 编译器)在行首放置分号。为了 示例:

; This is a comment. I could put reminders to myself here...

所以,这就是脚本注释分隔符(对于除

[Code]
之外的部分)。现在,让我们考虑一下为什么我们不能将注释内嵌到这些部分中。

为什么注释不能内嵌在名称值部分?

在名称值部分,例如

[Setup]
[Messages]
或类似的内容,您无法为其条目内嵌注释,因为值部分是等号后面的所有内容,无论它是什么。因此,下面的示例部分没有注释。相反,这些指令的值相当长且非常奇特:

[Setup]
AppName=MyApp                       // a comment    (allowed)
AppVersion=1.2.3.4                  ; a comment     (allowed)
DefaultDirName="{pf}\My App"        seems you can have anything at all here (allowed)

注释它们的正确方法是使用以分号开头的单独行:

[Setup]
; comment for AppName
AppName=MyApp
; comment for AppVersion
AppVersion=1.2.3.4
; comment for DefaultDirName
DefaultDirName={pf}\My App

为什么注释不能内联在分号分隔的部分中?

对于带有分号分隔参数的部分,不应仅仅因为它们的分隔符而内联分号分隔注释。如果在某些情况下这是可能的,我会认为这是由编译器解析器的惰性引起的(小)错误。


0
投票

可能值得注意的是,在脚本部分和

// comment here
块中允许使用 Pascal 类型注释
[Code]
。这是为了
Inno Setup 1.6.3
。任何以“
//
”开头的行都会被预处理器删除。

© www.soinside.com 2019 - 2024. All rights reserved.