【问题标题】:Inno setup: change AppVerName value during installInno setup:在安装过程中更改 AppVerName 值
【发布时间】:2015-12-09 03:47:25
【问题描述】:

我想为我的应用程序编写一个 Inno Setup 安装程序,它可以安装多次,并且在“程序和功能”中以不同的名称多次显示(基于用户输入)。据我所知,在 Inno 设置中,AppVerName 设置常量定义了这个值,所以我这样定义了我的 AppVerName:

AppVerName={#MyAppName}_{code:GetNetworkId} {#MyAppVersion}

我从用户的自定义向导页面获取 NetworkId,但似乎 AppVerName 只被评估一次,在我知道 NetworkId 之前(在初始化向导之前??),所以我的所有安装都将安装同名:“AppName_AppVersion”。

另一方面,以同样的方式定义 AppId

AppID={#MyAppName}_{code:GetNetworkId}

似乎工作正常,我可以在例如在注册表中。

这可以通过 AppVerName 以某种方式实现吗? 我还查看了 WizardForm 属性,但找不到任何与 AppVerName 对应的属性...有什么想法吗?

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

    没有。您无法从自定义页面输入中获取 AppVerName 指令的值,因为在创建向导表单时会评估此指令的值。正如参考文献所说(我强调):

    该指令的值显示在欢迎页面 安装向导,并用作 应用程序的添加/删除程序条目。

    这意味着您的自定义页面必须在欢迎页面之前显示。但是,您可以为此使用UninstallDisplayName。那个优先级在AppVerName 之前,实际上用于在添加/删除程序控制面板小程序中指定条目的名称。

    【讨论】:

    • 谢谢!但是您的 qoute 还说“...被用作默认标题...”,这也可能意味着可以以某种方式更改它以在“添加/删除程序”条目中获得不同的标题。对吗?
    • AppVerName 指令扩展的唯一位置is here。在项目的其余部分使用ExpandedAppVerName 变量,这意味着该指令仅在设置初始化时扩展。但是,您可以使用UninstallDisplayName 指令,该指令用于在添加/删除程序控制面板小程序中指定条目的名称。 UninstallDisplayName 甚至优先于 AppVerName
    • 谢谢! UninstallDisplayName 就是其中之一!
    猜你喜欢
    • 1970-01-01
    • 2011-01-29
    • 2013-03-14
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    相关资源
    最近更新 更多