2013-10-22 192 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就是其中之一! –

相關問題