Wie InstallShield überprüfen kann, ob SQL Server 2005 (3.1) Compact Edition (CE) installiert ist

Ich entwickle eine Windows-Desktop-Anwendung, für die das @ erforderlich isSQL Server 2005 Compact Edition ( SQLServerCE31-DE.msi) installiert werden. Ich benutzeInstallShield 2011, um dies als Voraussetzung während des Installationsvorgangs zu installieren.

Um die erforderliche Definition zu finden, die ich verwendet habeProcess Monitor um zu sehen, dass diese Registrierungspositionen überprüft werden, wenn SQLServerCE31-DE.msi wird manuell ausgeführt (nicht über das Installationsprogramm):

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

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

In den meisten Fällen scheint diese Prüfung zu funktionieren, und InstallShield überspringt die Voraussetzung, wenn sie bereits als installiert erkannt wurde. Allerdings hat man einige Maschinen Windows 7 Ultimate 64-bit mitSQL Server Compact Edition 3.5 bereits installiert) der Schlüssel existiert nicht, obwohlMicrosoft SQL Server 2005 Compact Edition [ENU] ist unter @ aufgefühProgramme und Funktione.

An beiden folgenden Stellen (auf einem 64-Bit-Computer) ist ein Registrierungsschlüssel vorhanden, mit dem Sie überprüfen können, obSQL Server Compact Edition 3.5 ist installiert, es ist jedoch nichts zu sehen, wenn 3.1 installiert ist.

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

Ich bin mir ziemlich sicher, dass es möglich ist, beide Versionen zu installieren, und dass es sich nicht um 3.5-Upgrades 3.1 handelt, obwohl es sich offensichtlich um eine neuere Version handelt.

Wie kann ich überprüfen, ob SQL Server 2005 Compact Edition installiert ist?

Für die InstallShield-Benutzer da draußen ist dies das.prq -Datei, die wir derzeit verwenden:

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

Kann die vorausgesetzte Datei verbessert werden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage