2

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

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

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

另一方面以相同的方式定义 AppId

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

似乎工作正常,因为我可以在注册表中的 eg 中看到它。

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

4

1 回答 1

4

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

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

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

于 2013-10-22T14:50:06.417 回答