如何以编程方式检查系统上是否安装了SQL Server Management Studio?

时间:2016-01-16 05:57:19

标签: c# sql .net ssms sql-server-express

我需要查看SQL Server Management Studio是否安装在系统上。我通过安装Visual Studio但系统上没有安装Management Studio来在系统上安装SQL Server Express实例时特别需要这个。

有关详细信息,我可以在系统上找到所有SQL Server实例,但我需要了解Management Studio是否也安装在系统上。

2 个答案:

答案 0 :(得分:3)

您可以检查其注册表项,看它是否返回null:

private RegistryKey _regSql = Registry.LocalMachine.OpenSubKey
            (@"HKLM\Software\Classes\Applications\sqlwb.exe", false);

if (_regSql == null) //If it's null then  SQL Server management is not installed
{
   //Do something
}

另外还有两个可以检查的注册表位置:

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SSMSEE
SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup

修改

根据this documents,使用地址SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup时,根据您要检查的版本更改数字部分(90)

90   | SQL Server 2008
100  | SQL Server 2008 R2
110  | SQL Server 2012
120  | SQL Server 2014 
130  | SQL Server 2016
140  | SQL Server 2017

答案 1 :(得分:1)

你可以使用WMI,如上所述:

ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject mo in mos.Get())
{
       if(mo["Name"].ToString().Equals("Application Name")) //
       {
         return true;
       }
}