.NET 어셈블리 파일은 일반적으로 '.dll'(동적 링크 라이브러리) 또는 '.exe'(실행 파일) 확장자를 가지며, C#, VB.NET, F#과 같은 .NET 언어로 작성된 컴파일된 코드 단위입니다. 이 파일은 MSIL(Microsoft Intermediate Language)로도 알려진 CIL(Common Intermediate Language, 공용 중간 언어) 코드, 코드를 설명하는 메타데이터, 그리고 이미지나 구성 파일과 같은 리소스를 포함합니다. 어셈블리는 .NET 애플리케이션의 근본적인 구성 요소이며, 코드를 패키징하고 배포하며, 버전 관리를 수행하고, 보안 경계를 적용하는 방법을 제공합니다. .NET 런타임인 CLR(Common Language Runtime, 공용 언어 런타임)은 어셈블리 내의 CIL 코드를 실행합니다. 어셈블리는 실행 가능한 애플리케이션(.exe)이거나 다른 애플리케이션에 재사용 가능한 코드를 제공하는 라이브러리(.dll)일 수 있습니다. 어셈블리는 자체 설명적(self-describing)이며, 이는 다른 어셈블리에 대한 종속성을 포함하여 CLR이 이를 로드하고 실행하는 데 필요한 모든 정보를 담고 있음을 의미합니다. 어셈블리 매니페스트(assembly manifest)라고 알려진 어셈블리 내의 메타데이터는 어셈블리의 이름, 버전, 문화권(culture), 공개 키, 그리고 종속성을 명시합니다. 이를 통해 CLR은 종속성을 해결하고 올바른 버전의 어셈블리가 로드되도록 보장하며, 모듈화되고 유지보수 가능하며 확장 가능한 .NET 애플리케이션을 만드는 데 필수적입니다.