Como o InstallShield pode verificar se o SQL Server 2005 (3.1) Compact Edition (CE) está instalado

Estou desenvolvendo um aplicativo da área de trabalho do Windows que requer oSQL Server 2005 Compact Edition (SQLServerCE31-EN.msi) Ser instalado. estou usandoInstallShield 2011 para instalar isso como um pré-requisito durante o processo de instalação.

Para criar a definição de pré-requisito que useiMonitor de Processo para verificar se esses locais de registro são verificados quandoSQLServerCE31-EN.msi é executado manualmente (não pelo instalador):

32 bits:HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.1

64 bits:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.1

Na maioria das vezes, essa verificação parece funcionar e o InstallShield ignora o pré-requisito, se já tiver sido detectado como instalado. No entanto, algumas máquinas (Windows 7 Ultimate de 64 bits comSQL Server Compact Edition 3.5 já instalado) a chave não existe, mesmo queMicrosoft SQL Server 2005 Compact Edition [ENU] está listado emProgramas e características.

Há uma chave de registro nos dois locais a seguir (em uma máquina de 64 bits) que pode ser usada para verificar seSQL Server Compact Edition 3.5 está instalado, mas nada para mostrar se o 3.1 estiver instalado.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5

Estou bastante certo de que é possível ter ambas as versões instaladas e não é que o 3.5 atualize 3.1, mesmo que seja obviamente uma versão mais recente.

Como posso verificar se o SQL Server 2005 Compact Edition está instalado?

Para os usuários do InstallShield por aí, esse é o.prq arquivo que estamos usando atualmente:

<?xml version="1.0" encoding="UTF-8"?>
<SetupPrereq>
 <conditions>
  <condition Type="1" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.1" FileName="" ReturnValue="" Bits="2"></condition>
 </conditions>
 <files>
  <file LocalFile="&lt;ISProjectFolder&gt;\..\InstallShieldPreRequisites\Microsoft SQL Server 2005 Compact Edition\SQLServerCE31-EN.msi" URL="http://download.microsoft.com/download/f/5/4/f54529c6-e316-4637-a211-95818fcd4451/SQLServerCE31-EN.msi" CheckSum="54854BAC91E616BF8F71184C05AD0355" FileSize="0,1819136"></file>
 </files>
 <execute file="SQLServerCE31-EN.msi" cmdline="/passive /norestart" cmdlinesilent="/passive /norestart" requiresmsiengine="1"></execute>
 <properties Id="{51BB3FEE-3851-4ECC-909A-C9D8EAF83254}" Description="This prerequisite installs Microsoft SQL Server 2005 Compact Edition"></properties>
</SetupPrereq>

O arquivo de pré-requisito acima pode ser aprimorado?