在现代软件开发中,.NET Framework是微软推出的一种应用程序开发平台,它允许开发者创建跨平台的应用程序。用户可以在自己的计算机上安装和运行多个版本的.NET Framework。在开发或部署应用程序时,了解目标计算机上安装了哪些版本的.NET Framework是非常有用的。本文将介绍一种罕见但可能的情况:如果目标计算机上没有安装任何.NET Framework,应该如何检测。
为了解决这个问题,首先需要开发一个纯C++应用程序(称为“启动器”),这个应用程序不需要任何.NET组件,其目的是检查目标计算机上是否至少安装了一个.NET Framework。如果检测到.NET Framework,主应用程序将启动并显示一个图形用户界面(GUI),列出已安装的组件。用户可以通过这个界面选择一个目录,然后应用程序会检查该目录中的所有EXE、DLL和OCX文件,以确定它们是否满足.NET的要求。
要获取计算机上安装的.NET Framework版本的准确列表,需要查看注册表。微软的文档提供了这方面的详细信息。对于.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值来确定.NET Framework的版本。例如:
工具正是利用这些信息来检测.NET Framework的版本。
启动名为CheckDotNet.exe的工具后,如果系统上完全没有安装.NET Framework,将看到一个消息框提示这种情况。然而,这种情况非常罕见。通常情况下,工具会发现一个或多个组件已经安装,然后启动一个用C#编写的GUI应用程序。
在GUI应用程序中,左侧会列出已安装的组件与未安装的组件。在右侧,可以扫描目标目录,检查其中的所有应用程序是否满足.NET依赖性。
此外,感谢LightTempler的贡献,现在工具还支持命令行模式。