1

install4j では、ファイルに「新しい場合は確認する」、「常に確認する」などの上書きポリシーを設定できます。

エンド ユーザーが編集できる .properties 構成ファイルを持つアプリケーションをアップグレードしたいと考えています。新しいバージョンでは、いくつかのプロパティが追加されますが、カスタマイズされた既存のプロパティを更新したくありません。

したがって、上書きポリシーを「しない」に設定し、新しいプロパティをマージするカスタム アクションを作成します。古いファイルと新しいファイルを比較し、キーが古いファイルに存在しないプロパティのみを追加します。

だから私の質問:

  1. インストールまたはアップグレード中にアクションが呼び出されたかどうかを検出できますか?
  2. 古いファイルが上書きされていない場合、新しいファイルの内容を取得するにはどうすればよいですか?
4

1 に答える 1

1

インストールまたはアップグレード中にアクションが呼び出されたかどうかを検出できますか?

はい、使用できます

context.isUpdateInstallation()

条件式またはその他のスクリプトで。

古いファイルが上書きされていない場合、新しいファイルの内容を取得するにはどうすればよいですか?

ファイルがインストールされていない場合、コンテンツにはアクセスできません。次のことをお勧めします。

  1. プロパティ ファイルを別のパスにインストールする
  2. 新規インストールの場合は「ファイルのコピー」アクションで対象パスにコピー
  3. アップグレード インストールの場合は、プロパティ ファイルをマージします。
  4. いずれの場合も、「ファイルの削除」アクションを使用して、手順 1 のテンプレート ファイルを削除します。
于 2011-12-15T19:49:57.503 に答える