Reputation: 6462
How to check in c# code if LocalDB currently installed? also, how to check if SQLNCLI11 presents in system?
Upvotes: 22
Views: 11889
Reputation: 2005
I found this nuget package that wraps up working with SQLLocalDB Has the following command
SqlLocalDbApi.IsLocalDBInstalled()
Upvotes: 3
Reputation: 41749
Check if LocalDB is installed, by looking for this registry key:
[HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\11.0]
SQLNCLI11 - check the file version and presence of this file: C:\WINDOWS\system32\sqlncli.dll
Upvotes: 15
Reputation: 2774
I'm using the answer to this question
to check for the existence of sqllocaldb.exe
Like so:
public static bool IsLocalDBInstalled()
{
return ExistsOnPath("SqlLocalDB.exe"); ;
}
public static bool ExistsOnPath(string fileName)
{
return GetFullPath(fileName) != null;
}
public static string GetFullPath(string fileName)
{
if (File.Exists(fileName))
return Path.GetFullPath(fileName);
var values = Environment.GetEnvironmentVariable("PATH");
foreach (var path in values.Split(';'))
{
var fullPath = Path.Combine(path, fileName);
if (File.Exists(fullPath))
return fullPath;
}
return null;
}
Upvotes: 2
Reputation: 143
Here is a VB.NET example checking for LOCALDB
Public Shared Function CheckLocalDBExists() As Boolean
Dim s As String = ""
Dim reg As RegistryKey
Dim rtn As Boolean = False
reg = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\12.0", True)
Try
s = reg.GetValue("ParentInstance", "").ToString
reg.Close()
Catch ex As Exception
s = Nothing
End Try
'MessageBox.Show(s)
If s = "MSSQL12E.LOCALDB" Then
rtn = True
End If
Return rtn
End Function
Upvotes: 3