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 回答