Share via


読み込むランタイム バージョンの決定

共通言語ランタイムは、次の情報を使用して、アプリケーションのために読み込むランタイム バージョンを決定します。

  • 利用できるランタイム バージョン

  • アプリケーションがサポートするランタイム バージョン

サポートされているランタイム バージョン

ランタイムは、アプリケーション構成ファイルとポータブル実行可能 (PE) ファイル ヘッダーを使用して、アプリケーションがサポートするランタイムのバージョンを決定します。 アプリケーション構成ファイルが存在しない場合、ランタイムはアプリケーションの PE ファイル ヘッダーで指定されているランタイム バージョンを読み込みます。ただし、このバージョンが利用できる場合です。

アプリケーション構成ファイルが存在する場合は、次のプロセスの結果に基づいて、ランタイムは読み込む適切なバージョンを決定します。

  1. ランタイムは、アプリケーション構成ファイルの <supportedRuntime> 要素 要素を調べます。 サポートされているランタイム バージョンが <supportedRuntime> 要素で 1 つ以上指定されている場合、ランタイムは最初の <supportedRuntime> 要素で指定されているランタイム バージョンを読み込みます。 このバージョンが利用できない場合、ランタイムは次の <supportedRuntime> 要素を調べ、指定されているランタイム バージョンの読み込みを試みます。 このランタイム バージョンが利用できない場合は、次の <supportedRuntime> 要素を調べます。 サポートされるランタイム バージョンがどれも利用できない場合、ランタイムはランタイム バージョンの読み込みに失敗し、メッセージが表示されます (手順 3. 参照)。

  2. ランタイムはアプリケーションの実行可能ファイルの PE ファイル ヘッダーを読み込みます。 PE ファイル ヘッダーで指定されたランタイム バージョンが利用できる場合、ランタイムはこのバージョンを読み込みます。 指定されたランタイム バージョンが利用できない場合は、PE ヘッダーのランタイム バージョンと互換性があると Microsoft によって決められたランタイム バージョンを検索します。 このバージョンが見つからない場合、プロセスは手順 3. に進みます。

  3. ランタイムは、アプリケーションがサポートしているランタイム バージョンが利用できないことを示すメッセージを表示します。 ランタイムは読み込まれません。

    メモメモ

    このメッセージが表示されないようにするには、レジストリ キー HKLM\Software\Microsoft\.NETFramework の値 NoGuiFromShim を使用するか、環境変数 COMPLUS_NoGuiFromShim を使用します。たとえば、無人インストールや Windows サービスなど、一般にはユーザーとの対話が不要なアプリケーションの場合、このメッセージを抑制できます。このメッセージを抑制すると、ランタイムによって、イベント ログにメッセージが書き込まれます。レジストリ値 NoGuiFromShim を 1 に設定すると、コンピューター上のすべてのアプリケーションで、このメッセージが抑制されます。別の方法として、COMPLUS_NoGuiFromShim 環境変数を 1 に設定すると、特定のユーザー コンテキストで実行されるアプリケーションについてメッセージを抑制できます。

メモメモ

ランタイム バージョンが読み込まれた後、アセンブリ バインディングのリダイレクトによって、.NET Framework アセンブリの異なるバージョンを読み込むように指定されることがあります。これらのバインディングのリダイレクトは、リダイレクトされた特定のアセンブリだけに適用されます。

参照

概念

アセンブリ バインディングのリダイレクト

ランタイム バージョン情報の検索

アセンブリ バインディングのリダイレクトの構成

その他の技術情報

side-by-side 実行