namespace env_monitor.Utils
{
using Microsoft.Win32;
using System.Diagnostics;
/// <summary>
/// 检测.Net环境
/// </summary>
public class EnvCheckUtil
{
/// <summary>
/// 判断.Net Framework的Version是否符合需要 (.Net Framework 版本在2.0及以上)
/// </summary>
/// <param name="version">
/// 需要的版本 version = 4.5
/// </param>
/// <returns>
/// </returns>
public static bool IsInstallDotNet(string version)
{
string oldname = "0";
using (RegistryKey ndpKey = RegistryKey.OpenRemoteBaseKey(
RegistryHive.LocalMachine,
""
)
.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
if (ndpKey != null)
foreach (string versionKeyName in ndpKey.GetSubKeyNames())
{
if (versionKeyName.StartsWith("v"))
{
RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
if (versionKey != null)
{
string newname = (string)versionKey.GetValue(
"Version",
""
);
if (string.CompareOrdinal(
newname,
oldname
) >
0)
{
oldname = newname;
}
if (newname != "")
{
continue;
}
foreach (string subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
if (subKey != null)
newname = (string)subKey.GetValue(
"Version",
""
);
if (string.CompareOrdinal(
newname,
oldname
) >
0)
{
oldname = newname;
}
}
}
}
}
}
return string.CompareOrdinal(
oldname,
version
) >
0;
}
/// <summary>
/// 打开系统软件卸载页面
/// </summary>
public static void OpenAppUninstallPage()
{
Process.Start("appwiz.cpl");
}
}
}
调用
var isInstallNet = EnvCheckUtil.IsInstallDotNet("4.5");
Console.WriteLine(@"是否安装.Net4.5:" + isInstallNet);