C#判断.NetFramework库是否安装

正文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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");
}
}
}

调用

1
2
var isInstallNet = EnvCheckUtil.IsInstallDotNet("4.5");
Console.WriteLine(@"是否安装.Net4.5:" + isInstallNet);