2010-07-08 184 views
1

我使用.NET Installer作为引导程序,我需要检测是否安装了Adobe Acrobat 9.3或更高版本作为先决条件。检测Adobe Acrobat 9.3+是否已安装

目前我使用此注册表来检测安装:

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

我只是检查,看是否存在的关键。这有以下问题:

  1. 这取决于将有可能与新版本
  2. 的Adobe Reader推出后ELUA键只存在更改注册表路径上。如果安装程序在读取器启动之前再次运行,则会强制它们重新安装
  3. 此密钥不允许我真正检查它们具有的Adobe版本。

仅供参考.net安装程序可以通过文件{exists/file version}或注册表项{exists/version}检查现有产品。我更喜欢使用注册表,因为应用程序可以安装在任何地方,我无法使用此工具扫描“卸载”注册表项。

任何想法?

http://dotnetinstaller.codeplex.com/

回答

0

在关键

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

你可以找到安装路径。一旦你的安装路径,你可以去那里,找到可执行“AcroRd32.exe”,并得到其版本的代码

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

正如你所说,从来版本可能有不同的注册表项。您必须在代码中处理该代码,以便通过“AcrobatReader”下的密钥,获取他们的名称(可能是“10.0”和“9.0”),解析它们,然后比较它们以获取最新版本信息。

+0

正如问题中提到的,这不是C#代码,它是一个声明式XML引导程序。这个解决方案不会真的为此工作。 – 2010-07-08 16:11:32