1. ホーム
  2. c#

[解決済み] C#や.NETにおけるアセンブリとは何ですか?

2022-05-16 16:44:29

質問

C#や.NETにおけるアセンブリとは何か、教えてください。

  1. どこから始まって、どこで終わるのでしょうか?
  2. アセンブリについて知っておくべき重要な情報は何ですか。

どのように解決するのですか?

アセンブリはコードのコンパイル済み出力で、通常は DLL ですが、EXE もまたアセンブリです。これは、あらゆる .NET プロジェクトで展開される最小の単位です。

アセンブリは通常、MSIL (Microsoft Intermediate language) の .NET コードを含み、与えられたマシンで最初に実行されたときにネイティブ コードにコンパイルされます ("JITted" - Just-In-Time コンパイラーによってコンパイルされます)。このコンパイルされたコードはアセンブリに保存され、その後の呼び出しで再利用されます。

アセンブリは、アイコン、ビットマップ、文字列テーブルなどのリソースも含むことができます。さらに、アセンブリはアセンブリ マニフェストにメタデータ (バージョン番号、強い名前、カルチャ、参照されるアセンブリなどの情報) も格納します。

マルチファイル アセンブリ (1 つのアセンブリが複数のファイルに分散している) のケースは、私の 5 年以上の .NET 開発で一度も遭遇したことのない、かなり奇妙なエッジ ケースに見えます。

マルチファイル アセンブリでは、DLL または EXE に 1 つのアセンブリ マニフェストのみが存在し、MSIL コードは複数の netmodule ファイルに存在することになります。