CLR バージョン検出の技術サンプル
更新 : 2007 年 11 月
このサンプルでは、コンピュータにインストールされている .NET Framework 共通言語ランタイム (CLR: Common Language Runtime) のバージョンを検出する方法を示します。
このサンプルの使用については、次のトピックを参照してください。
Visual Studio を使用してサンプルをビルドするには
Windows エクスプローラを開き、CLRVerSample ディレクトリの CP サブディレクトリに移動します。
CLRVerCP.sln のアイコンをダブルクリックして Visual Studio 2005 で開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
サンプルを実行するには
コマンド プロンプト ウィンドウで、新しい実行可能ファイルが格納されているディレクトリに移動します。
コマンド ラインで「CLRVer.exe」と入力します。
必要条件
.NET Framework のバージョン : 2.0、1.1
Microsoft Visual Studio 2005
これらのサンプルには、Windows ヘッダーが必要です。プロジェクトで Windows ヘッダーを参照できるようにするには、Microsoft Visual Studio 2005 の [Visual Studio 2005 コマンド プロンプト] を使用してビルドするか、プラットフォーム SDK をインストールしてインクルード パスに指定します。
解説
このサンプルは、C++ 以外では使用できません。このサンプル コードでは、mscoree.h に定義されているアンマネージ API を呼び出して、ローカル コンピュータにインストールされている CLR のバージョンの一覧を表示します。mscoree.h は、Windows Software Development Kit (SDK) のインストール ディレクトリの \include サブディレクトリに含まれています。
このサンプルは、プロセスに読み込まれている CLR のバージョンに関する情報を返す、アンマネージ GetRequestedRuntimeInfo 関数 メソッドを呼び出します。この情報には、コンピュータにインストールされている最新の CLR バージョンが表示されないことがあります。
.NET Framework Version 2.0 では、GetRequestedRuntimeInfo 関数 パラメータを次のように指定すると、インストールされている最新の CLR バージョンを取得できます。
最初の 3 つのパラメータには null を指定します。
runtimeInfoFlags パラメータに指定されている RUNTIME_INFO_FLAGS 列挙体に RUNTIME_INFO_UPGRADE_VERSION フラグを設定します。
次の状況では、GetRequestedRuntimeInfo 関数 メソッドから最新の CLR バージョンが返されないことがあります。
特定の CLR バージョンを読み込むように指定するアプリケーション構成ファイルがある場合。.NET Framework は、pConfigurationFile パラメータに null が指定されている場合でも、構成ファイルを使用します。
以前の CLR バージョンを指定する CorBindToRuntimeEx 関数 が呼び出された場合。
以前の CLR バージョンでコンパイルされたアプリケーションが現在実行されている場合。