2012-03-19 6 views
2

私はすべて、私のプロジェクトで選択したインストールパッケージとしてinstall4jに落ち着いています。他の多くの利点の中でも、アップグレードのための組み込みのサポートは、私が知る限り、フィールドをアウトクラスすることができます。しかし、私は好奇心の質問を持っています。install4jソフトウェア以外のインストールのinstall4j Upradeインストールを "ブートストラップ"する方法はありますか?

install4jインストーラをサポートする必要がある任意のメタデータで「ブートストラップ」するという概念をサポートするためのベストプラクティスまたは再利用可能なコードはありますか? 「家庭で栽培された」インストールメカニズム

多くのプロジェクトの場合と同じように、私たちは何年も前からあって、Windows用のInstallShieldインストーラとUnix用のBASHスクリプトの間違いがあります。私たちはinstall4jを使ってそのすべてを統合しています。

いくつかの興味深いフォローアップの質問があります: 1. APIでisUpgradeInstallation()から返された値を設定する方法はありますか? 2.新しいインストーラーにアプリケーションIDを埋め込んだ.install4jディレクトリーにファイルをドロップすると、install4jを実行することができますか?

どのようなアイデアやポインターをいただければ幸いです。

答えて

2

通常、従来のアップグレードのケースを処理するカスタムロジックを追加します。

ただし、古いインストールディレクトリに.install4jディレクトリを作成して、i4jparams.confファイルを含む既存のインストールを「偽の」install4jインストールに変換することができます。その偽の設定ファイルでは、唯一の重要な情報はバージョン情報とアプリケーションIDです。他のものはすべて削除できます。

context.isUpdateInstallation()はtrueを返します。