Как InstallShield может проверить, установлен ли SQL Server 2005 (3.1) Compact Edition (CE)

Я разрабатываю настольное приложение для Windows, которое требуетSQL Server 2005 Compact Edition (SQLServerCE31-EN.msi) быть установленным. я используюInstallShield 2011 установить это как предварительное условие во время процесса установки.

Чтобы придумать предварительное определение, я использовалМонитор процесса чтобы увидеть, что эти места реестра проверяются, когдаSQLServerCE31-EN.msi запускается вручную (не через установщик):

32-бит:HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.1

64-бит:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.1

В большинстве случаев эта проверка работает, и InstallShield пропускает предварительное условие, если оно уже обнаружено как установленное. Однако одна машинка (Windows 7 Ultimate, 64-разрядная версия сSQL Server Compact Edition 3.5 уже установлен) ключ не существует, хотяMicrosoft SQL Server 2005 Compact Edition [ENU] перечислено подПрограммы и особенности.

В обоих следующих местах (на 64-разрядной машине) есть раздел реестра, который можно использовать для проверки того, чтоSQL Server Compact Edition 3.5 установлен, но ничего не показывает, если установлен 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

Я совершенно уверен, что возможно установить обе версии, но это не то, что 3.5 обновляет 3.1, хотя это, очевидно, более новая версия.

Как проверить, установлен ли SQL Server 2005 Compact Edition?

Для пользователей InstallShield это.prq файл, который мы сейчас используем:

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

Можно ли улучшить указанный выше файл предварительных требований?

Ответы на вопрос(2)

Ваш ответ на вопрос