C# 为什么总是使用32位注册表检查已安装的.NET版本?

C# 为什么总是使用32位注册表检查已安装的.NET版本?,c#,.net,registry,C#,.net,Registry,从位于的Microsoft示例代码中,当查询安装的.NET 4.5或更高版本时,他们使用以下代码访问HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"; using (RegistryKey ndpKey = RegistryKey .Ope

从位于的Microsoft示例代码中,当查询安装的.NET 4.5或更高版本时,他们使用以下代码访问HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey ndpKey = RegistryKey
    .OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
    //The rest of their example code
}
我的问题是:为什么他们这样做(总是
RegistryView.Registry32
),而没有说明为什么他们至少没有根据代码运行的系统选择性地打开密钥

我的工作站上的适当值确实存在于64位位置以及WOW6432Node\位置中,因此我刚刚假设这两个位置都将写入64位机器,并且32位视图将在32位机器上使用,因此读取32位位置应被视为“安全”。然而,这只是我的一个假设,我还不能证实,因为我还没有看到有人提到它。如果我的假设不正确,我不想在我的生产代码中使用这个示例代码