2

作業中のアプリケーションで install4j の自動更新機能を利用しています。更新が必要かどうかを正確にどのように判断するのか疑問に思っていましたか?

update.xml の関連エントリの newProperty 値と比較されているアプリケーションのバージョン番号に純粋に基づいているかどうかはわかりません。または、アプリケーション ID (インストーラー構成画面内) はどこかで機能しますか?

4

1 に答える 1

2

更新検出ロジックはカスタマイズ可能です。

[インストーラー]->[画面とアクション]タブでアップデータインストーラーアプリケーションを確認し、[記述子エントリの更新]という名前のアクションを見つけます。そのアクションは、次のスクリプトを使用した単なる「変数の設定」アクションです。

((UpdateDescriptor)context.getVariable("updateDescriptor")).getPossibleUpdateEntry()

このメソッドUpdateDescriptor#getPossibleUpdateEntry()は、インストールされているアプリケーションのバージョン番号を、ダウンロードされたupdates.xmlファイルのバージョン番号と比較します。より正確には、updates.xmlで、現在のインストールのインストールに使用されたインストーラーのメディアファイルIDと一致するメディアファイルIDのエントリを検索し、そのエントリのバージョン番号を使用します。

このロジックを独自のロジックに置き換えることができます。たとえば、updates.xml[インストーラー]->[自動更新オプション]タブで構成されたファイルのカスタム属性を使用します。

于 2011-12-20T10:06:01.850 に答える