공용 언어 런타임의 어셈블리

어셈블리는 .NET Framework 응용 프로그램의 빌딩 블록으로서, 배포, 버전 관리, 재사용, 활성화 범위 지정 및 보안 권한의 기본 단위를 형성합니다. 어셈블리는 또한 형식 및 리소스의 컬렉션이며 이들 형식과 리소스는 함께 작업하여 특정 기능의 논리적 단위를 구성하도록 빌드됩니다. 어셈블리는 형식을 구현하는 데 필요한 정보를 공용 언어 런타임에 제공합니다. 런타임에 있어서 형식은 어셈블리 컨텍스트 내에만 존재합니다.

다음과 같은 기능을 수행합니다.

  • 공용 언어 런타임에서 실행하는 코드를 포함합니다. PE(이식 가능한 실행) 파일에 들어 있는 MSIL(Microsoft Intermediate Lanaguage) 코드는 연관된 어셈블리 매니페스트가 없으면 실행되지 않습니다. 각 어셈블리는 DllMain, WinMain 또는 Main 중 하나의 진입점만 가질 수 있습니다.

  • 보안 경계를 구성합니다. 어셈블리 단위에서는 권한을 요청하고 허가합니다. 어셈블리에 적용되는 보안 경계에 대한 자세한 내용은 어셈블리 보안 고려 사항을 참조하십시오.

  • 형식 경계를 구성합니다. 모든 형식의 ID에는 해당 형식이 저장된 어셈블리의 이름이 있습니다. 한 어셈블리의 범위 내에서 로드된 MyType 형식은 다른 어셈블리의 범위 내에서 로드된 MyType 형식과 다릅니다.

  • 참조 범위 경계를 구성합니다. 어셈블리의 매니페스트에는 형식을 확인하고 리소스 요청을 완료하는 데 사용되는 어셈블리 메타데이터가 들어 있습니다. 매니페스트는 어셈블리 외부에서 노출된 리소스와 형식을 지정하며, 이 매니페스트가 종속된 다른 어셈블리를 열거하기도 합니다.

  • 버전 경계를 구성합니다. 공용 언어 런타임에서 어셈블리는 버전 관리가 가능한 가장 작은 단위이며 동일한 어셈블리에 들어 있는 모든 형식 및 리소스는 동일한 버전을 갖습니다. 어셈블리의 매니페스트는 다른 종속 어셈블리에 대해 지정하는 버전 종속성을 설명합니다. 버전 관리에 대한 자세한 내용은 어셈블리 버전 관리를 참조 하십시오.

  • 배포 단위를 구성합니다. 응용 프로그램이 시작될 때에는, 응용 프로그램에서 초기에 호출하는 어셈블리만 있어야 합니다. 지역화 리소스, 유틸리티 클래스가 들어 있는 어셈블리 등의 기타 어셈블리는 필요할 때 검색할 수 있습니다. 이렇게 하면 응용 프로그램을 간단하고 크기가 작은 상태로 다운로드할 수 있습니다. 어셈블리 배포에 대한 자세한 내용은 응용 프로그램 배포를 참조하십시오.

  • Side-by-side 실행이 지원되는 단위입니다. 어셈블리의 여러 버전을 실행하는 방법에 대한 자세한 내용은 어셈블리 및 Side-by-Side 실행을 참조하십시오

어셈블리는 정적이거나 동적일 수 있습니다. 정적 어셈블리에는 어셈블리의 리소스(비트맵, JPEG 파일, 리소스 파일 등)나 .NET Framework 형식(인터페이스 및 클래스)이 포함될 수 있으며 이러한 어셈블리는 디스크에 있는 PE 파일에 저장됩니다 .NET Framework를 사용하여 동적 어셈블리를 만들 수도 있는데, 동적 어셈블리는 메모리에서 직접 실행되며 실행되기 전에 디스크에 저장되지 않습니다. 동적 어셈블리는 실행된 후에 디스크에 저장할 수 있습니다.

어셈블리를 만드는 방법에는 여러 가지가 있습니다. Visual Studio 2005와 같이 이전에 .dll 또는 .exe 파일을 만들 때 사용하던 개발 도구를 사용하거나 Windows SDK(소프트웨어 개발 키트)에 제공된 도구를 사용하여 모듈이 있는 어셈블리를 다른 개발 환경에서 만들 수도 있습니다. 또는 Reflection.Emit와 같은 공용 언어 런타임 API를 사용하여 동적 어셈블리를 만들 수 있습니다.

관련 항목

제목

설명

어셈블리의 이점

어셈블리에서 버전 문제나 DLL 충돌을 해결하는 방법에 대해 설명합니다.

어셈블리 콘텐츠

어셈블리 구성 요소에 대해 설명합니다.

어셈블리 매니페스트

어셈블리 매니페스트의 데이터 및 이 데이터를 어셈블리에 저장하는 방법에 대해 설명합니다.

전역 어셈블리 캐시

전역 어셈블리 캐시 및 그 사용 방법에 대해 설명합니다.

강력한 이름의 어셈블리

강력한 이름의 어셈블리 특징에 대해 설명합니다.

어셈블리 보안 고려 사항

어셈블리에서 보안이 작동되는 방법에 대해 설명합니다.

어셈블리 버전 관리

.NET Framework 버전 관리 정책에 대해 설명합니다.

어셈블리 배치

어셈블리 위치에 대해 설명합니다.

어셈블리 및 Side-by-Side 실행

여러 버전의 런타임이나 어셈블리를 동시에 사용하는 방법에 대한 개요를 제공합니다.

어셈블리를 사용한 프로그래밍

어셈블리의 특성을 만들고 서명하고 설정하는 방법에 대해 설명합니다.

동적 메서드 및 어셈블리 생성

동적 어셈블리를 만드는 방법에 대해 설명합니다.

런타임에서 어셈블리를 찾는 방법

.NET Framework가 런타임에 어셈블리 참조를 확인하는 방법에 대해 설명합니다.

참조

System.Reflection.Assembly