見るここにCLR v2(.NET 2.0、3.0、および3.5)に関連するCLRホスティングについての情報。 .NET 4.0の新しいCLRホスティングAPIについては、こちらをご覧ください。
基本的に、CLRはプロセスによってロードされ「ホスト」されることができるライブラリとして機能します。必要に応じて、CLRをロードしてホストするアプリを開発できます。それはあなたのアプリがCLR仮想マシン全体を含み、アセンブリをロードし、その中で.NET管理コードを実行することを可能にするでしょう。
たとえば、SQL Server 2008はこれを実行できます。 SQL Serverデータベースに格納され、SQL Serverデータベースエンジン内から実行される.NETコードを書くことができます。 SQL Serverはそれを達成するためにCLRをホストしています。
Windowsシェル(通常のユーザーインタフェース)以外のCLRホストは、コードを実行するための特定のコンテキストを提供できます。これは特殊なアプリケーションや非常に特定のシナリオに役立ちます。 MSDN(上記リンク)には、これらの問題に関するいくつかのガイドラインがあります。
CLRホスティングは、選択したプロセスで.NET共通言語ランタイムをホスティングします。
ユースケースは、既存の環境があなたの要件に合わない状況です。既存の環境には、ASP.NET、WinForm、Windows Workflow Foundationなどがあります。これらが要件に合わない場合は、自分でホストできます。
CLRホスティングは、.NEt applicationを使用します。ネイティブプロセス内で.NETランタイムを起動すると、そのネイティブアプリケーションがランタイムのホストになります。これにより、ネイティブアプリケーションに.NET機能を追加できます。
ランタイムが実行されていても、まだロードされたユーザーコードがまだない場合。一部の内部スレッドスケジューラとガベージコレクタは、CLRランタイムの一部であるため、確実に実行されています。 それは他のホスティングサービスよりも非常に複雑です。