2017-08-10 28 views
1

新しいバージョンの上に古いバージョンをインストールしないようにいくつかのバージョン検証を設定したいと思います。 Ex。バージョン3がインストールされているときにバージョン1がインストールされないようにします。これを行う最善の方法は何ですか?古いバージョンが新しいバージョンにインストールされないようにする

+0

Install4jのv5.1.15 –

答えて

0

インストーラの[スタートアップ]ノードに[スクリプトの実行]アクションを追加して、すでにインストールされているバージョンを検証できます。

// The value returned by context.getInstallationDirectory() will be the last 
// installation directory if the user has already installed the application 
ApplicationRegistry.ApplicationInfo applicationInfo = 
    ApplicationRegistry.getApplicationInfoByDir(context.getInstallationDirectory()); 

if (applicationInfo == null) { 
    // The application has never been installed before 
    return true; 
} 

if (Integer.parseInt(applicationInfo.getVersion()) > 
    Integer.parseInt(context.getVersion())) { 
    Util.showErrorMessage("A more recent version has already been" + 
    " installed in this directory"); 
    // By returning "false", the action will fail and the installer will quit. 
    // Note that you have to set the "Failure strategy" property of your 
// "Run script" action to "Quit on error", otherwise the installer will continue. 
    return false; 
} else { 
    return true; 
} 
+0

ありがとう:

次のコードスニペットは、彼らが簡単な整数である場合は、より新しいバージョンに対して検証する方法を示しています!バージョンは10.6.5などより複雑です。どのような変更が必要でしょうか?私はjava.lang.NumberFormatExceptionを取得しています:そのままです。 –

+0

これはAPIには含まれていませんが、内部メソッド 'com.install4j.runtime.util.VersionCheck.checkCompatible(version1、version2)'を使うことができます。これは、 'version1'が' version2'よりも低い場合にtrueを返します。 –

関連する問題