2013-10-22 195 views
2

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

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

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

在另一方面定义的appid以同样的方式

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

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

这可以用AppVerName以某种方式实现吗? 我也看看WizardForm属性,但找不到任何可能对应于AppVerName的任何想法...任何想法?

回答

4

不可以。您无法从自定义页面输入中获取AppVerName指令的值,因为在创建向导表单时会评估此指令的值。作为基准说(由我强调):

显示 安装的向导的欢迎页面上的这个指令,并且被用作 应用程序的添加默认标题中的值/删除程序项。

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

+0

谢谢!但是你的qoute也会说“...用作默认标题...”,这也可能意味着它可以以某种方式更改,以在“添加/删除程序”条目中获得不同的标题。对? –

+0

'AppVerName'指令展开的唯一地方['在这里]](https://github.com/jrsoftware/issrc/blob/master/Projects/Main.pas#L3151)。在项目的其余部分使用'ExpandedAppVerName'变量,这意味着该指令仅在安装初始化时扩展。但是,您可以使用['UninstallDisplayName'](http://www.jrsoftware.org/ishelp/topic_setup_uninstalldisplayname.htm)指令,该指令用于在“添加/删除程序”控制面板小程序中指定条目的名称。 'UninstallDisplayName'在AppVerName之前甚至有优先权。 – TLama

+0

谢谢! UninstallDisplayName就是其中之一! –

相关问题