1

.NET インストーラーをブートストラップとして使用しており、前提条件として Adob​​e Acrobat 9.3 以降がインストールされているかどうかを検出する必要があります。

現在、このレジストリを使用してインストールを検出しています。

HKEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat Reader\9.0\AdobeViewer\ELUA

キーが存在するかどうかを確認するだけです。これには次の問題があります。

  1. 新しいバージョンで変更される可能性があるレジストリパスに依存します
  2. ELUA キーは、Adobe Reader の起動後にのみ存在します。リーダーが起動される前にインストールが再度実行されると、強制的に再インストールされます
  3. このキーでは、使用している adobe のバージョンを実際に確認することはできません。

参考までに、.net インストーラーは、ファイル {exists / file version} またはレジストリ キー {exists / version} で既存の製品を確認できます。アプリケーションはどこにでもインストールでき、このツールを使用して「アンインストール」レジストリ キーをスキャンできないため、レジストリを使用することを好みます。

何か案は?

http://dotnetinstaller.codeplex.com/

4

1 に答える 1

0

鍵の下

KEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat Reader\9.0\Installer

インストールパスを見つけることができます。インストール パスを取得したら、そこに移動し、実行可能ファイル「AcroRd32.exe」を見つけて、コードでそのバージョンを取得します。

FileVersionInfo myFI = FileVersionInfo.GetVersionInfo("yourexe.exe");

あなたが言ったように、決してバージョンが異なるレジストリキーを持つことはありません。コードでこれを処理する必要があります。これにより、「AcrobatReader」の下のキーを調べて、「10.0」と「9.0」の可能性がある名前を取得し、それらを解析してから、それらを比較して最新のバージョン情報を取得します。

于 2010-07-08T14:56:11.867 に答える