2013-05-07 6 views
2

SQL Server 2008 R2 является одним из моих предварительных условий для установщика. Я знаю, что нам нужно проверить запись в реестре, используя RegistrySearch для обнаружения SQL Server. Я просматривал веб-страницы, но я полностью смущен множеством записей в реестре. Я проверил самостоятельно на установленной машине SQL Server 2008 R2 и нашел следующие записи реестра. Может кто-нибудь, пожалуйста, сообщите мне, какой из них правильный, чтобы проверить? Существует ли какая-либо другая стандартная запись реестра для обнаружения SQL-серверов?Обнаружение SQL Server 2008 R2 из WIX

значение CurrentVersion составляет 10,5

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Redist\SQLBrowser\1033\CurrentVersion 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Redist\SQLBrowser\CurrentVersion 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SQLNCLI10\1033\CurrentVersion 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup\CurrentVersion 

ответ

3

В настоящее время я следующие поиски, чтобы проверить, что установлен. Первые два говорят мне, что SqlServer установлен в любой версии. Во-вторых, скажите мне, это Sql 2008R2. Я могу использовать их для принятия решения о том, следует ли обновлять или обновлять существующий экземпляр (я не тестировал, работает ли это с Sql2012, я сомневаюсь, что он будет работать, поскольку я не ожидаю, что вы сможете «обновить», Sql2012 до Sql2008R2):

<util:RegistrySearch Root="HKLM" 
        Key="SYSTEM\CurrentControlSet\services\MSSQL$[SqlInstance]" 
        Result="exists" 
        Variable="SQLServerInstalled" /> 

<util:RegistrySearch Root="HKLM" 
        Key="SYSTEM\CurrentControlSet\services\MSSQLSERVER" 
        Result="exists" 
        Variable="DefaultSQLServerInstalled" /> 

<util:RegistrySearch Root="HKLM" 
        Key="SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.[SqlInstance]" 
        Result="exists" 
        Variable="SQLServer2008R2Installed" /> 

<util:RegistrySearch Root="HKLM" 
        Key="SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER" 
        Result="exists" 
        Variable="DefaultSQLServer2008R2Installed" /> 
+0

Спасибо за ответ @caveman_dick. Как получить SqlInstance, если установлены несколько экземпляров SQL Server. – Vinoth

+0

Это то, что мне было трудно. Есть запись реестра, в которой перечислены экземпляры, но Wix 3.6 не может импортировать REG_MULTI, в котором они хранятся. Не уверен, что это было исправлено в 3.7. –

+0

Я использую C# Custom Action и завершу это. Теперь он работает нормально. Еще раз спасибо. – Vinoth

Смежные вопросы