InstallShield 2012 Spring でビルドされたインストーラーを使用したアップグレード中に、次のメッセージが表示されます。
- InstallShield Wizard は、インストールされている <our product> のバージョン (9.01.005) をバージョン 9.2.0.53 に更新します。
- InstallShield Wizard は <our product> の (9.01.005) をバージョン 9.2.0.53 に更新しています。
これらのメッセージは、文字列リソースIDS_IFX_SDWELCOMMESSAGE_UPDATE_WELCOME
とIDS_IFX_STATUSEX_STATICTEXT_UPDATEUI
. 変更されていない文字列リソースは次のようになると思います。
- InstallShield ウィザードは、%P のインストール済みバージョン (%VI) をバージョン %VS に更新します。続行するには、[次へ] をクリックします。
- InstallShield ウィザードは、%P をバージョン %VS に更新 (%VI) しています。
一部のリソースは、2 番目の文字列リソースが「InstallShield Wizard が %P の %VI をバージョン %VS に更新しました」であることを示しています。
問題は、古い (インストールされた) バージョン番号が、"9.01.005" のような内部バージョン番号のフォーマットされたバージョンではなく、"9.1.5.2" のような表示文字列であることです。私が理解しているように、のデフォルトのInstallScriptコードに置換を入力するためにSdSubstituteProductInfo
使用されます。これは、優先表示文字列が必要な場所に表示されない理由を説明しています。そして、(または同様に を参照するダイアログまたはコード)、フォーマットが不適切なバージョンも表示されると思います。IFX_INSTALLED_DISPLAY_VERSION
%VI
OnUpdateUIBefore
IFX_INSTALLED_DISPLAY_VERSION
IFX_INSTALLED_VERSION
SdWelcome
IFX_INSTALLED_DISPLAY_VERSION
上記の関数、文字列、および文字列 ID について Web で検索したにもかかわらず、適切にフォーマットされた古いバージョン番号 (DisplayVersion) を正しいフォーマットで表示するための理想的な解決策が見つかりませんでした。を含む文字列リソースを使用する代わりに、古いバージョン番号をスキップするフォーマット文字列をハード コーディングすることを提案する記事もあります%VI
。他の人は、必要に応じてバージョン番号を手動でフォーマットし、結果を に入れることを提案していIFX_INSTALLED_DISPLAY_VERSION
ます。もっと良い答えがあることは知っています。次に私や他の誰かがそれを探すときに、もっと簡単に見つけられるようにしたいと思っています。