代码之家  ›  专栏  ›  技术社区  ›  Brian Campbell Dennis Williamson

innosetup:在[代码]部分获取appname

  •  18
  • Brian Campbell Dennis Williamson  · 技术社区  · 14 年前

    我正在使用 InnoSetup [Code] AppName (或者,潜在的,其他参数的值)定义在 [Setup] 部分。有办法让我这么做吗?我已经看过了 documentation ,但我还没有找到任何可以让我这么做的东西。我们的innosetup文件实际上是由我们的构建过程生成的,它将所有程序之间通用的片段和特定于程序的片段缝合在一起,因此在每个程序的代码中定义常量是不方便的。有什么方便的方法吗?

    我在找类似的东西

    MyString := ExpandConstant('{AppName}');
    

    {AppName} 不是定义的常量。是否有方法查询 部分?

    2 回复  |  直到 11 年前
        1
  •  14
  •   Community Egal    7 年前

    它是一个构建时间常量,而不是安装时间值。所以你可以使用 Inno Setup Preprocessor QuickStart pack )

    定义常数:

    #define AppName "Excellent Foo App"
    

    [Setup]

    AppName={#AppName}
    

    MyString := {#AppName}
    

    更新: {#emit SetupSetting("AppId")} Brian's solution 也发现了这种方法,而且效果更好。

        2
  •  20
  •   Brian Campbell Dennis Williamson    14 年前

    受Craig的回答启发,我查看了Innosetuppreprocessor文档(在iStool中,我在网上还没有找到),发现 SetupSetting

    MyString := '{#SetupSetting("AppName")}';
    

    只要 [Setup] AppName