.NET Framework 检测器






4.91/5 (32投票s)
列出所有可用的 .NET Framework,并检查已安装应用程序的链接 .NET 组件
引言
用户可以在他们的计算机上安装和运行多个版本的 .NET Framework。 在开发或部署应用程序时,您可能需要知道目标计算机上安装了哪些 .NET Framework 版本。 本文管理一种罕见(但可能发生)的情况,即没有安装任何 .NET Framework。 为此,它从一个纯 C++ 应用程序(Starter)开始,该应用程序不需要任何 .NET 组件,以检查是否至少安装了一个 .NET Framework。 如果是,则启动主应用程序并显示一个带有已定位组件的 GUI。 现在用户可以选择一个目录来检查其中的所有 *.EXE、*.DLL 和 *.OCX 文件是否满足 .NET 要求。
背景
要获取计算机上安装的 .NET Framework 版本的准确列表,我们需要查看注册表。 此功能附带 Microsoft 的文档 此处。 要查找 .NET Framework 1 - 4,我们需要使用以下子项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
对于版本 4.5 及更高版本,我们正在寻找以下子项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
Release DWORD 的值 | 版本 |
378389 | .NET Framework 4.5 |
378675 | .NET Framework 4.5.1 与 Windows 8.1 或 Windows Server 2012 R2 一起安装 |
378758 | .NET Framework 4.5.1 安装在 Windows 8、Windows 7 SP1 或 Windows Vista SP2 上 |
379893 | .NET Framework 4.5.2 |
Windows 10:393295 在所有其他操作系统版本上:393297 | .NET Framework 4.6 |
Windows 10 November Update:394254 在所有其他操作系统版本上:394271 | .NET Framework 4.6.1 |
Windows Server 2016:394802 在所有其他操作系统版本上:394806 | .NET Framework 4.6.2 |
Windows 10 Creators Update:460798 在所有其他操作系统版本上:460805 | .NET Framework 4.7 |
Windows 10 Creators Update:461308 在所有其他操作系统版本上:461310 | .NET Framework 4.7.1 |
Windows 10 April 2018:461808 在所有其他操作系统版本上:461814 | .NET Framework 4.7.2 |
这正是该工具所做的
int GetNetfxSpLevel(string pszNetfxRegKeyName, string pszNetfxRegValueName)
{
try
{
var oRet = Registry.GetValue(pszNetfxRegKeyName, pszNetfxRegValueName, "");
if (oRet != null)
return (Int32)oRet;
}
catch (Exception ex)
{
_oLog.Write(ex);
}
return -1;
}
使用工具
启动 CheckDotNet.exe 后,如果您的系统上绝对没有 .NET Framework,您将看到以下消息框
然而,这应该是一种非常罕见的情况。
通常,会发现一个或多个组件,并且 CheckDotNet.exe 将启动用 C# 编写的 GUI 应用程序
它在左侧列出可用的与未安装的组件。
在右侧,您可以扫描目标目录以检查其中的所有应用程序是否满足 .NET 依赖项。
现在有一个 CMD 命令行模式,非常感谢 LightTempler
[更新]
更新为检测高达 .NET 4.8.1,非常感谢 Peter Thomas!
历史
- 当前版本 1.0.0
- 添加了命令行版本 Win32Analyser.zip
- 更新到版本 2.0.0,通过添加对 .NET 4.6.2、4.7、4.7.1、4.7.2 的识别
- 更新到版本 3.2.0
- 更新到版本 10.1.0