在搜索特定注册表项时 本地计算机 SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 使用 C#,>net Framework 应用程序给出的结果与 .Net core 应用程序中的结果不同
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", false);
Console.WriteLine(key.GetSubKeyNames().Length);
foreach (String keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
string displayName = subkey.GetValue("DisplayName") as string;
if (displayName == null)
{
Console.WriteLine("NULL");
continue;
}
Console.WriteLine(displayName);
if (displayName.Contains("MyApp") == true)
{
Console.WriteLine("Found");
return;
}
}
.Net 框架给出了 863 个名称,.net core 给出了 247 组不同的结果。
最佳答案
我怀疑 .NET Framework 应用程序是 32 位程序,而 .NET Core 应用程序在 64 位运行时下运行。
如果您想在 .NET Core 应用程序中枚举 WOW64 注册表,您可以按照此处的说明进行操作:How to open a WOW64 registry key from a 64-bit .NET application
关于c# - 在 .net core 和 .net Framework 中搜索给出不同输出的注册表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58649651/