C#または.NETのアセンブリとは何ですか?
- それはどこから始まり、どこで終わりますか?
- アセンブリについて知っておくべき重要な情報は何ですか?
C#または.NETのアセンブリとは何ですか?
回答:
アセンブリは、コードのコンパイルされた出力であり、通常はDLLですが、EXEもアセンブリです。これは、あらゆる.NETプロジェクトのデプロイメントの最小単位です。
アセンブリには通常、MSIL(Microsoft中間言語)の.NETコードが含まれています。これは、特定のマシンで初めて実行されるときに、ネイティブコードにコンパイルされます( "JITted"-Just-In-Timeコンパイラーによってコンパイルされます)。そのコンパイル済みコードもアセンブリに格納され、後続の呼び出しで再利用されます。
アセンブリには、アイコン、ビットマップ、文字列テーブルなどのリソースも含めることができます。さらに、アセンブリには、アセンブリマニフェストのメタデータ(バージョン番号、厳密な名前、カルチャ、参照されるアセンブリなどの情報)も含まれています。
99%のケースでは、1つのアセンブリはディスク上の物理ファイルに相当します-マルチファイルアセンブリ(1つのアセンブリ、複数のファイルに分散)のケースは、かなり奇妙なエッジケースのように見えます私の5年以上の.NET開発でこれまでに出会ったことはありません。
マルチファイルアセンブリでは、DLLまたはEXEのアセンブリマニフェストは1つだけであり、MSILコードは複数のネットモジュールファイルにあります。
Microsoft .NETフレームワークでは、アセンブリは、展開、バージョン管理、およびセキュリティで使用するために部分的にコンパイルされたコードライブラリです。
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
アセンブリは、すべての.NETアプリケーションのコンパイルが成功したときにコンパイラによって自動的に生成されるファイルです。ダイナミックリンクライブラリまたは実行可能ファイルのいずれかです。アプリケーションに対して1回だけ生成され、その後のコンパイルごとにアセンブリが更新されます。
ここだ .NETアセンブリ、ミニ引用のメイクアップの別の説明は:
.NETフレームワークは、メタデータとマニフェスト情報の両方を格納するモジュール、アセンブリの概念で構成されています。アセンブリには複数のモジュールを含めることができます。Visual C#は、C#コンパイラ(csc.exe)によってアセンブリに変換されるモジュールを1つだけ作成しますが、アセンブリは、アセンブリリンカー(al.exe)コマンドラインツールを介して多くの.NETモジュールをリンクできます。たとえば、各ソースコードの.csファイルをモジュールにコンパイルしてリンクし、アセンブリを形成することができます。アセンブリは、モジュールとリソースの単なるコレクションです。ただし、これらのモジュールの1つ。CLRがアセンブリを理解するには、マニフェストメタデータ(下記参照)情報を含める必要があります。
....
VS.NET内に新しい.exeまたは.dllを作成すると、binフォルダー内にファイルが表示されます。ファイルをメモ帳で開くと、意味不明な内容が出力されます。また、ファイルの構造を知らなくても16進エディターの内部にいる場合でも、ildasm.exeやCFFエクスプローラーなどのツールを使って意味を理解する必要があります。アセンブリの構造は次のとおりです。PEヘッダー
CLRヘッダー
CLRメタデータ
CLR
ILコード
ネイティブデータ
答えは即座に把握するためです。
簡単に言えば、クラスと追加ファイルがある場合、それが含まれるコンパイル済みプロジェクトです。つまり、ソリューションの各プロジェクトはアセンブリです。
またはもっと技術的に、
アセンブリは、型がflesystemに格納されている場所です。アセンブリは、コードを展開するためのメカニズムです。たとえば、
System.Data.dll
アセンブリにはデータを管理するためのタイプが含まれています。他のアセンブリでタイプを使用するには、タイプを参照する必要があります。- ソース
どうやってそれを知るのですか?ソリューションの下のプロジェクトのプロパティを一目見ると、次の画像が表示されます。
プロジェクトをコンパイルすると、DLLまたはEXEになります。
アセンブリは、公開またはアプリケーションのコンパイル時に作成されるDLLまたはEXEです。
アセンブリは、論理ユニットのコレクションです。論理ユニットとは、アプリケーションを構築し、.Netフレームワークを使用してそれらをデプロイするために必要なタイプとリソースを指します。基本的に、アセンブリはExeとDLLのコレクションです。移植可能で実行可能です。
プログラム(プロジェクト)のソースコードを書き込んだ後、DLLまたはEXEである可能性のあるファイルがプロジェクトに依存して作成されます。1つのプロジェクトで1回だけ作成されます。これには2つのタイプがあります1:-シングル2:-共有またはマルチプログラムシングルアセンブリは単一プログラムでのみ使用され、共有はマルチプログラムに使用できます