2

だから、.NET ランタイムのアーキテクチャと構造に興味があります。それがどのように機能するかを段階的に知りたいです。私はいくつかの本を持っており、グーグルでいくつかの答えを探していますが、今、いくつかの質問について正しい答えが欲しいです.

書かれた本では、CSC.exe (コンパイラ) はマネージ モジュールを生成します。これには次のものが含まれます。 1. PE ヘッダー 2. CLR ヘッダー 3. メタデータ 4. IL コード

コンパイル後、ツール AL.exe (アセンブリ リンカ) がそのモジュールをアセンブリにマージします。また、アセンブリには DLL または EXE という 2 つの主要なファイル拡張子があることも知っています。

しかし、マネージド モジュールに興味があります。コンパイラをコンパイルする方法とファイル形式は何ですか? それは.netmodule拡張子ですか?またはDLL?

ps私の英語でごめんなさい。

4

1 に答える 1

1

管理対象モジュールは、形式が.DLL / .EXEとまったく同じです(どちらもPE形式であり、PEヘッダー+ CLRヘッダー+メタデータ+コードが含まれています)。違いは、マルチモジュールアセンブリを実行している場合は、.netmoduleを作成することです。マルチモジュールアセンブリは、内部に複数のモジュールがあるアセンブリです。System.Data.dllは、管理対象パーツとネイティブC ++パーツの両方が1つのアセンブリに含まれているため、その一例です。

.NetModulesは、複数のモジュールを1つのアセンブリにパッケージ化するための便利な方法です。高レベルのコンパイラ(C#など)はそれを処理しません。そのため、アセンブリリンカーツール(AL)を使用する必要があります。

これがお役に立てば幸いです

于 2012-10-20T23:29:33.410 に答える