在 Inno Setup 中,我必须在哪里指定 SignTool 的参数和特殊序列?

Where do I have to specify the parameters and special sequences for SignTool in Inno Setup?

这是 SignTool 的文档文章:SignTool

我不太确定应该在哪里指定 SignTool 参数和特殊序列。它是在 [Setup] 部分还是在 编译器 IDE 中(通过工具 | 配置签名工具...菜单) 还是两者都有?如果我在编译器 IDE 中指定了所有参数,我是否必须在 [Setup] 部分中再次指定?另外,这部分我不是很懂:

byparam=$p

Note: for security reasons you should give a unique name to any Sign Tool set to $p, and not use a byparam name copied from this example. Consider what happens if you #include a third-party file that says:

[Setup] SignTool=byparam format c:

$p 序列如何真正发挥作用?

SignTool directive, you specify, which sign tool definition you want to use in that particular script. The tool can be defined in IDE or using /S compiler commandline switch.

SignTool指令可以包含额外的参数,可以通过使用$p特殊序列的定义来引用。这使您可以灵活地在脚本中定义部分命令,并在定义中定义部分命令。选择权完全在您手中。 老实说,我不太明白其中的原因,因为使用 Inno Setup 预处理器可以实现相同的灵活性。可能有一些历史原因。我不知道 SignTool 是否早于内置预处理器,或者是否相反。

总之,上面的意思就是这三个是等价的:

定义中的一切

  • 定义:

    mysigntool=signtool.exe sign /a /n $qMy Common Name$q /t http://... $f
    
  • 脚本:

    [Setup]
    signtool=mysigntool
    

部分在定义中,部分在脚本中

  • 定义:

    mysigntool=signtool.exe sign /a $p
    
  • 脚本:

    [Setup]
    signtool=mysigntool /n $qMy Common Name$q /t http://... $f
    

脚本中的一切

  • 定义:

    anysigntool=$p
    
  • 脚本:

    [Setup]
    signtool=anysigntool signtool.exe sign /a /n $qMy Common Name$q /t http://... $f