необходимо получить строчки из ветки @"SOFTWARE\Microsoft\Microsoft SQL Server" но GetValue ничего не возвращает если ключ вложен в ветку... если ключ лежит по адресу HKEY_LOCAL_MACHINE и в качестве параметра в OpenSubKey передаётся пустая строка то значения возвращаются
2010 студия, 4;3,5;3;2 фреймворк не работает... на 2008+3,5 фреймворк работает...
- Код: Выделить всё
public static string[] GetServers()
{
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server", false);
String[] instances = ((String[])rk.GetValue("InstalledInstances"));
String[] retList = new string[instances.Length];
int i = 0;
foreach (var item in instances)
{
if (item == "MSSQLSERVER")
retList[i] = System.Environment.MachineName;
else
retList[i] = String.Format("{0}\\{1}", System.Environment.MachineName, item);
i++;
}
return retList;
}