2009-08-25 3 views

답변

11

관리되는 모듈은 일반적으로 기계 코드가없는 IL 코드 만 포함하는 모듈을 의미하는 것으로 이해합니다.

모듈은 일반 PE 파일에 저장됩니다.

어셈블리는 하나 이상의 모듈 집합으로, 하나는 '머리'로 지정되어 있습니다 (정확한 용어 [1] 참조). 모듈 자체는별로 사용하지 않습니다. 어셈블리는 원자 단위입니다.

예를 들어, 2 개의 DLL과 EXE가있는 다중 모듈 어셈블리를 가질 수 있습니다. 멀티 모듈 어셈블리는 꽤 드뭅니다.

C#을 통한 Richter CLR의 Don Box 책 Esssential .NET은 주제를 잘 설명합니다. 자세한 내용은 Serge Lidin .NET 2.0 IL 어셈블러 및 CLI 표준이보다 완벽합니다.

[1] http://www.programmersheaven.com/2/FAQ-DOTNET-DOTNET-Assembly-Explained

에 따른 조립체는 하나의 파일이 될 수 있거나 다수의 파일들로 구성 될 수있다. 다른 어셈블리가 비 매니페스트 모듈

존재하면서 여러 파일의 경우, 매니페스트를 포함하는 하나 개의 마스터 모듈이 실제 질문에 대답하려면 : - .NET에서 모듈을 관리 무엇

어셈블리와 다른 점은 무엇입니까?

그것은

은 일부는 - DLL이 자식 모듈 마스터 모듈이 될 수있다 - 따라서 너무

는 PE 파일 관리 모듈 (예 Test.dll에.)는 조립 될 또는 어셈블리?

확실히 모듈입니다. 매니페스트와 자식 모듈이없는 경우 어셈블리입니다.

디스크의 실제 파일과 어셈블리/관리 모듈은 어떻게 대응합니까? 각 모듈은 파일입니다. 모듈은 IL ​​포함

0

(당신이 관심이 있다면 ILMerge 같은 도구 모듈을 병합 할 수 있습니다) 그리고 그들 중 많은 사람들이 일반적으로 .exe 또는 .dll 인 같은 PE에 보관되어 어셈블리를 생성하기 위해 함께 연결되어 있습니다 .

PE에는 기본 (관리되지 않는) 코드도 포함될 수 있습니다.

This is a good intro to the concepts.

0

관리 모듈은 소스 코드의 컴파일 된 버전의 IL 이다. 소스 파일 에서 모듈을 만들 때 빌드 된 파일의 확장명은 .netmodule입니다.

어셈블리는 DLL 또는 .exe 관리되는 모듈, 리소스 및 메타 데이터가 포함 된 파일입니다.

관련 문제