CLR 版本检测技术示例
更新:2007 年 11 月
本示例说明了如何检测计算机上安装的 .NET Framework 公共语言运行时 (CLR) 的版本。
有关使用这些示例的信息,请参见下面的主题:
使用 Visual Studio 生成示例
打开 Windows 资源管理器,然后定位到 CLRVerSample 目录下的 CP 子目录。
双击 CLRVerCP.sln 的图标以在 Visual Studio 2005 中打开该文件。
在“生成”菜单上单击“生成解决方案”。
运行示例
在命令提示窗口中,定位到包含新的可执行文件的目录。
在命令行上键入 CLRVer.exe。
要求
**.NET Framework 版本:**2.0、1.1
Microsoft Visual Studio 2005
如果您使用 Microsoft Visual Studio 2005(“Visual Studio 2005 命令提示符”)进行生成,或者已在包含路径中安装并指定了 Platform SDK,则这些示例需要可用于您的项目的 Windows 头文件。
备注
此示例仅在 C++ 中可用。此代码示例调用 mscoree.h(位于 Windows 软件开发工具包 (SDK) 安装目录下的 \include 子目录中)中定义的非托管 API,以便列出本地计算机上安装的 CLR 的版本。
此示例调用非托管 GetRequestedRuntimeInfo 函数 方法,该方法将返回有关加载到进程中的 CLR 版本的信息。此信息不会总是显示计算机上安装的最新的 CLR 版本。
在 .NET Framework 2.0 版中,指定 GetRequestedRuntimeInfo 函数 参数的下列内容可以获取最新安装的 CLR 的版本:
前三个参数为 null。
为 runtimeInfoFlags 参数指定的 RUNTIME_INFO_FLAGS 枚举中的 RUNTIME_INFO_UPGRADE_VERSION 标志。
GetRequestedRuntimeInfo 函数 方法在下列情况下不会返回最新的 CLR 版本:
如果存在一个指定加载特定的 CLR 版本的应用程序配置文件。请注意,.NET Framework 将使用该配置文件,即使为 pConfigurationFile 参数指定 null 也同样如此。
如果调用的 CorBindToRuntimeEx 函数 指定的是 CLR 的早期版本。
如果当前正在运行应用程序是针对 CLR 的早期版本编译的。