Я установил Visual Studio вчера.Я хотел бы посмотреть, какая версия .NET Framework установлена вместе с Visual Studio, поэтому я следовал этому коду от Microsoft .(прокрутите немного вниз для кода).Я открыл новый проект Visual C # с помощью «Консольного приложения (.NET Core)» и скопировал в него указанный код.
using System;
using Microsoft.Win32;
public class GetDotNetVersion
{
public static void Main()
{
GetDotNetVersion.Get45PlusFromRegistry();
}
private static void Get45PlusFromRegistry()
{
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null)
{
Console.WriteLine(".NET Framework Version: " + CheckFor45PlusVersion((int)ndpKey.GetValue("Release")));
}
else
{
Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
}
}
}
// Checking the version using >= will enable forward compatibility.
private static string CheckFor45PlusVersion(int releaseKey)
{
if (releaseKey >= 461808)
return "4.7.2 or later";
if (releaseKey >= 461308)
return "4.7.1";
if (releaseKey >= 460798)
return "4.7";
if (releaseKey >= 394802)
return "4.6.2";
if (releaseKey >= 394254)
return "4.6.1";
if (releaseKey >= 393295)
return "4.6";
if (releaseKey >= 379893)
return "4.5.2";
if (releaseKey >= 378675)
return "4.5.1";
if (releaseKey >= 378389)
return "4.5";
// This code should never execute. A non-null release key should mean
// that 4.5 or later is installed.
return "No 4.5 or later version detected";
}
}
// This example displays output like the following:
// .NET Framework Version: 4.6.1
Однако в редакторе «RegistryKey» выдает ошибку: «Пространство имен не может быть найдено ".Вторая строка 'using Microsoft.Win32;'серый, как если бы он не вызывался в коде.
Когда я смотрю на панель обозревателя решений в Visual Studio, я могу перечислить зависимости.Я не вижу MicrosoftWin32.dll, но я вижу mscorlib.dll.Я где-то читал, что там можно найти пространство имен Microsoft.Win32?
Может кто-нибудь подсказать, как решить эту проблему?Где я могу найти пространство имен Microsoft.Win32?Почему он не доступен в этом стандартном проекте?