.NET 어셈블리는 여러 종류의 구성 요소로 구성합니다.
첫 번째 구성 요소로 어셈블리 매니페스트가 있습니다. 어셈블리 매니페스트는 어셈블리의 버전 요구 사항과 보안 ID를 지정하는 데 필요한 모든 메타데이터와 어셈블리의 범위를 정의하고 참조를 확인하는 데 필요한 모든 메타 데이터를 포함하고 있습니다. 어셈블리 매니페스트는 어셈블리 이름, 버전 번호, 문화권, 강력한 이름의 정보, 어셈블리에 포함한 파일 목록, 형식 참조 정보로 구성합니다.
그리고 어셈블리에 정의된 형식들에 대한 형식 메타 데이터와 실제 수행해야 할 코드인 MSIL과 리소스로 구성합니다.
어셈블리는 하나의 물리적 바이너리로 만들어진 단일 파일 어셈블리와 여러 개의 물리적 바이너리로 만들어진 다중 파일 어셈블리로 나눌 수 있습니다. .NET에서는 어셈블리의 부속으로 사용하는 모듈을 만들 수 있는데 모듈은 어셈블리의 내용으로 포함합니다. 즉, 하나의 어셈블리가 다른 어셈블리에 있는 형식을 사용하기 위해서는 단순히 사용할 어셈블리를 참조만 하면 되는데 모듈에 있는 것을 사용할 때는 모듈을 포함하여 어셈블리를 만들어야 합니다.
그리고 .NET 어셈블리를 구성하는 물리적 바이너리에는 리소스 파일, 매니페이스, DLL, 모듈 등이 있습니다.