c# - 在 .net core 和 .net Framework 中搜索给出不同输出的注册表项

标签 c# key registry uninstallation

在搜索特定注册表项时 本地计算机 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/

相关文章:

c# - 如何在不定义目标表的情况下使用 BulkCopy

c# - 是否有可能在 .NET microframework 4.1 中使用 Regex?

python - 按 SORTED 顺序在字典中添加键

windows-7 - Windows 7 - 我可以在哪里以及如何存储机器用户独立数据?

c# - 如何编辑 gpedit 政策

windows - 神秘的 native "A"注册表项,路径为 : Registry\A

c# - 如何向 Xelement 添加属性

c# - MongoDB:是否可以只处理一个属性的自定义反序列化器?

ios - 在 AnimationDidStop 中检索 CAKeyframeAnimationKey 的键

java - Java 中的切换键