2010-05-27 12 views
5

Estoy construyendo un instalador y quiero arrancar SQL Server Compact Edition 3.5 SP2. El problema es que estoy buscando la clave de registro HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU\DesktopRuntimeVersion. El motivo por el cual es un problema es que para las máquinas de 64 bits SQL CE requiere que se ejecuten los instaladores de 32 bits y de 64 bits. No puede instalar la versión de 64 bits hasta que esté instalada la versión de 32 bits.Detectando si SQL Server Compact Edition 3.5 SP2 x64 está instalado?

Tan pronto como se instala la versión de 32 bits, la clave de registro se rellena y mi bootstrapper, dotNetInstaller, detecta que la clave de registro está allí y que la versión x64 nunca está instalada.

¿Alguna idea sobre cómo saber si la versión x64 está instalada incluso si está instalada la x32?

Respuesta

7

sistema x64 con el tiempo de ejecución única x86 instalada:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU] 
"DesktopRuntimeVersion"="3.5.8080.0" 
"DesktopRuntimeServicePackLevel"="2" 

sistema x64 con x86 y x64 instalada:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU] 
"DesktopRuntimeVersion"="3.5.8080.0" 
"DesktopRuntimeServicePackLevel"="2" 
"DesktopRuntimeVersion_x64"="3.5.8080.0" 
+0

¡Perfecto! ¡Gracias! –

+0

Tenga en cuenta que el paquete SP2 x64 no se instalará a menos que esté instalado el paquete x86. Más información: http://erikej.blogspot.com/2010/05/how-to-detect-if-x64-sql-compact-35- sp2.html – ErikEJ

1

Algunos prueba de código si SQL CE 3.5 SP2 se instala utilizando MSBuild:

<PropertyGroup> 
    <SSCE35sp2Installed Condition="'$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\[email protected])' == '3.5.8080.0' And '$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\[email protected])' == '2'">true</SSCE35sp2Installed> 
    <SSCE35sp264Installed Condition="'$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\[email protected]_x64)' == '3.5.8080.0'">true</SSCE35sp264Installed> 
</PropertyGroup> 

No estoy seguro de cuántos de los valores de registro deben verificarse. Por ejemplo, ¿debería verificarse además el valor de Wow6432Node DesktopRuntimeServicePackLevel?

Cuestiones relacionadas