¿Cómo puede InstallShield verificar si está instalado SQL Server 2005 (3.1) Compact Edition (CE)

Estoy desarrollando una aplicación de escritorio de Windows que requiere elSQL Server 2005 Compact Edition (SQLServerCE31-EN.msi) Para ser instalado. estoy usandoInstallShield 2011 instalar esto como un requisito previo durante el proceso de instalación.

Para llegar a la definición de requisito previo que utilicéMonitor de proceso para ver que estas ubicaciones de registro se verifican cuandoSQLServerCE31-EN.msi se ejecuta manualmente (no a través del 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

La mayoría de las veces, esta comprobación parece funcionar e InstallShield omite el requisito previo si ya se detectó como instalado. Sin embargo, algunas máquinas (Windows 7 Ultimate de 64 bits conSQL Server Compact Edition 3.5 ya instalado) la clave no existe, aunqueMicrosoft SQL Server 2005 Compact Edition [ENU] se enumera enProgramas y características.

Hay una clave de registro en las dos ubicaciones siguientes (en una máquina de 64 bits) que podría usarse para verificar queSQL Server Compact Edition 3.5 está instalado, pero no hay nada que mostrar si está instalado 3.1.

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

Estoy bastante seguro de que es posible tener ambas versiones instaladas y no es que las actualizaciones 3.5 sean 3.1, aunque obviamente es una versión más nueva.

¿Cómo puedo verificar si SQL Server 2005 Compact Edition está instalado?

Para los usuarios de InstallShield, este es el.prq archivo que estamos usando actualmente:

<?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>

¿Se puede mejorar el archivo de requisitos previos anterior?