Это может произойти, если вы на 64-битной машине. Создать вспомогательный класс первый (требует .NET 4.0 или более поздней версии):
public class RegistryHelpers
{
public static RegistryKey GetRegistryKey()
{
return GetRegistryKey(null);
}
public static RegistryKey GetRegistryKey(string keyPath)
{
RegistryKey localMachineRegistry
= RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem
? RegistryView.Registry64
: RegistryView.Registry32);
return string.IsNullOrEmpty(keyPath)
? localMachineRegistry
: localMachineRegistry.OpenSubKey(keyPath);
}
public static object GetRegistryValue(string keyPath, string keyName)
{
RegistryKey registry = GetRegistryKey(keyPath);
return registry.GetValue(keyName);
}
}
Использование:
string keyPath = @"SOFTWARE\MyApp\Settings";
string keyName = "MyAppConnectionStringKey";
object connectionString = RegistryHelpers.GetRegistryValue(keyPath, keyName);
Console.WriteLine(connectionString);
Console.ReadLine();
Вы правильно вытекающее ключевого пути? Это «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \\ TestKey», а не «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ TestKey»? – Michael
Да, я отправил это неправильно. На самом деле это настройка для использования \\ – PositiveGuy
Так что это отлично работает на компьютере моего босса. Нет причин, почему этого не должно быть здесь. Я дал доступ учетной записи asp.net к нему, так как я запускаю веб-сервер VS и по-прежнему возвращает null. – PositiveGuy