4

インストーラーで、インストールされているバージョンがコンピューターに既にインストールされているアプリケーションのバージョンよりも低いかどうかを確認する必要があります。

その場合、インストールを許可せずにインストーラーを閉じる必要があります。

だから、私は以下のコードを持っています:

if GetVersionNumbersString(ExpandConstant('{app}\bin\application.exe'), Version) then
begin
...
end;

これにより、コンピューター上のアプリケーションのバージョン番号が返されます。私の質問は:

VersionInfoVersionmySetupの情報を読み取るにはどうすればよいですか?

4

1 に答える 1

4

バージョン番号を正しく比較するには、バージョン番号の各コンポーネントの数値比較を行う必要があります。

ISPP を使用GetFileVersion()して、コンパイル時にインストールするテキストのバージョン番号を取得し、それを PascalScript 文字列変数に入れるか、実行時に{#emit...}PascalScript を使用して を渡すことができます。その後、PascalScript の関数を再度使用して、置き換えるアプリケーションのテキスト バージョンを取得できます。GetVersionNumbersString()ExpandConstants('{srcexe}')GetVersionNumbersString()

これらの両方が PascalScript 文字列変数にある場合、CompareVersion()関数を使用して実際の比較を行うことができます。

于 2013-05-10T15:55:15.887 に答える