К сожалению, Microsoft, похоже, не дает однозначного ответа о том, как проверить наличие клиентской библиотеки.При поиске в Интернете и перехвате реестра выявляются по крайней мере следующие ключи реестра:
HLKM\SOFTWARE\Microsoft\SQLNCLI11 (key:InstalledVersion)
HLKM\SOFTWARE\Microsoft\SQLNCLI10 (key:InstalledVersion)
HKLM\SOFTWARE\Microsoft\Microsoft SQL Native Client\CurrentVersion (version 9, i presume?)
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 10.0\CurrentVersion (key:Version)
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 11.0\CurrentVersion (key:Version)
В этом сообщении в блоге на MSDN предлагается использовать ключи реестра для ответа на связанный вопрос (установлен SQL Server Express)неправильно, неправильно, неправильно, и вы должны вместо этого написать 200 строк кода WMI.Подходы WMI кажутся одинаково недокументированными и даже более хрупкими для меня.
Поскольку Microsoft позволяет распространять пакет собственного клиента SQL , возможно, лучший выбор - простоmsi в установщике вашего приложения и запустите его независимо от того, нужно оно или нет.См. этот список поддерживаемых операционных систем для различных драйверов, которые они предоставляют , который показывает, что существует также версия 10.5 (!).
SQLNCLI устанавливается параллельно с драйверами на основе MDAC, поэтомудолжно быть безопасно запустить msiexec
на этом и позволить ему позаботиться о деталях.