如何以编程方式检查系统上是否安装了 SQL Server Management Studio?
How to check if SQL Server Management Studio is installed on a system programmatically?
我需要查明系统上是否安装了 SQL Server Management Studio。当通过安装 Visual Studio 在系统上安装 SQL Server Express 的实例但系统上没有安装 Management Studio 时,我特别需要这个。
有关详细信息,我可以找到系统上安装的 SQL 服务器的所有实例,但我需要了解系统上是否也安装了 Management Studio。
您可以像前面提到的那样使用 WMI:
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject mo in mos.Get())
{
if(mo["Name"].ToString().Equals("Application Name")) //
{
return true;
}
}
您可以检查它的注册表项,看看它是否returns 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\Tools\ClientSetup
编辑
根据 this documents,在使用地址 SOFTWARE\Microsoft\Microsoft SQL Server\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
我需要查明系统上是否安装了 SQL Server Management Studio。当通过安装 Visual Studio 在系统上安装 SQL Server Express 的实例但系统上没有安装 Management Studio 时,我特别需要这个。
有关详细信息,我可以找到系统上安装的 SQL 服务器的所有实例,但我需要了解系统上是否也安装了 Management Studio。
您可以像前面提到的那样使用 WMI:
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject mo in mos.Get())
{
if(mo["Name"].ToString().Equals("Application Name")) //
{
return true;
}
}
您可以检查它的注册表项,看看它是否returns 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\Tools\ClientSetup
编辑
根据 this documents,在使用地址 SOFTWARE\Microsoft\Microsoft SQL Server\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