在Inno Setup中,必须在哪里为SignTool指定参数和特殊顺序?

问题描述

这是SignTool的文档文章SignTool

我不确定我应该在哪里指定SignTool参数和特殊序列。是在[Setup]节中还是在in the compiler IDE (via the Tools | Configure Sign Tools... menu)中?如果在编译器IDE中指定了所有参数,是否必须在[Setup]部分中再次执行此操作?另外,我不了解这部分内容

byparam = $ p

注意:出于安全考虑,您应为任何标志指定一个唯一的名称 工具设置为$ p,并且不使用从此示例复制的byparam名称。 请考虑如果您#include包含以下内容的第三方文件会发生什么情况:

[设置] SignTool = byparam格式c:

$p序列实际上在这里如何工作?

解决方法

SignTool directive中,指定要在该特定脚本中使用的签名工具定义。该工具可以在IDE中定义,也可以使用/S compiler commandline switch来定义。

SignTool指令可以包含其他参数,定义中可以使用$p 特殊序列来引用。这使您可以灵活地在脚本中定义命令的一部分,在定义中定义一部分。选择完全是您的。 老实说,我并不十分了解其原因,因为使用Inno Setup预处理程序可以实现相同的灵活性。

无论如何,以上意味着这三个是等效的:

定义中的所有内容

  • 定义:

    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