어셈블리와 전역 어셈블리 캐시(C# 및 Visual Basic)

어셈블리는 .NET 응용 프로그램에 대한 배포, 버전 관리, 다시 사용, 활성화 범위 지정 및 보안 권한의 기본 단위를 형성합니다. 어셈블리는 실행 파일(.exe)이나 동적 연결 라이브러리(.dll) 파일의 형태를 취하며 .NET Framework의 빌드 블록입니다. 어셈블리는 공용 언어 런타임에서 형식 구현을 인식하는 데 필요한 정보를 제공합니다. 어셈블리는 기능의 논리적 단위를 형성하며 형식과 리소스가 함께 작동되도록 만들어진 하나의 컬렉션입니다.

어셈블리에는 하나 이상의 모듈이 포함될 수 있습니다. 예를 들어, 여러 개발자가 개별 모듈에 대한 작업을 수행하고 각 모듈을 결합하여 단일 어셈블리를 만드는 방식으로 대형 프로젝트를 계획할 수 있습니다. 모듈에 대한 자세한 내용은 방법: 다중 파일 어셈블리 빌드 항목을 참조하십시오.

어셈블리에는 다음과 같은 속성이 있습니다.

  • 어셈블리는 .exe 또는 .dll 파일로 구현됩니다.

  • 전역 어셈블리 캐시에 어셈블리를 배치하여 응용 프로그램 간에 어셈블리를 공유할 수 있습니다. 어셈블리를 전역 어셈블리 캐시에 포함하려면 먼저 강력한 이름을 지정해야 합니다. 자세한 내용은 강력한 이름의 어셈블리를 참조하십시오.

  • 어셈블리는 필요한 경우에만 메모리에 로드됩니다. 사용되지 않는 어셈블리는 로드되지 않습니다. 즉, 어셈블리를 사용하여 대형 프로젝트의 리소스를 효율적으로 관리할 수 있습니다.

  • 리플렉션을 사용하여 프로그래밍 방식으로 어셈블리에 대한 정보를 얻을 수 있습니다. 자세한 내용은 Reflection을 참조하십시오.

  • 검사를 목적으로만 어셈블리를 로드하려는 경우에는 ReflectionOnlyLoadFrom 같은 메서드를 사용합니다.

어셈블리 매니페스트

모든 어셈블리 내에는 어셈블리 매니페스트가 있습니다. 목차와 같이 어셈블리 매니페스트에는 다음 내용이 포함됩니다.

  • 어셈블리 ID(이름과 버전)

  • 사용자가 만든 다른 어셈블리(.exe 또는 .dll 파일이 의존하는 어셈블리), 비트맵 파일, 추가 정보 파일을 비롯하여 어셈블리를 구성하는 모든 다른 파일을 설명하는 파일 테이블

  • 모든 외부 종속성 목록인 어셈블리 참조 목록(응용 프로그램에 필요한 .dll 또는 기타 파일로 다른 사용자가 만든 파일일 수 있음) 여기에는 전역 개체와 전용 개체 모두에 대한 참조가 포함됩니다. 전역 개체는 다른 응용 프로그램이 사용할 수 있는 영역(예: System32 디렉터리)인 전역 어셈블리 캐시에 상주합니다. Microsoft.VisualBasic 네임스페이스는 전역 어셈블리 캐시의 어셈블리에 대한 한 예입니다. 전용 개체는 응용 프로그램이 설치된 디렉터리와 수준이 같거나 그보다 하위의 디렉터리에 있어야 합니다.

어셈블리에는 내용, 버전 관리 및 종속성에 대한 정보가 포함되어 있기 때문에 Visual Basic과 C#을 사용하여 만드는 응용 프로그램은 레지스트리 값에 관계없이 정상적으로 작동합니다. 어셈블리는 .dll 충돌을 줄여 주고 응용 프로그램의 신뢰도를 높이며 해당 응용 프로그램을 쉽게 배포할 수 있도록 합니다. 대부분의 경우 해당 파일을 대상 컴퓨터에 복사하기만 하면 .NET 기반 응용 프로그램을 설치할 수 있습니다.

자세한 내용은 어셈블리 매니페스트를 참조하십시오.

어셈블리에 대한 참조 추가

어셈블리를 사용하려면 방법: Visual Studio에서 참조 추가 또는 제거의 설명대로 어셈블리에 대한 참조를 추가해야 합니다. 그런 다음 Visual Basic의 Imports 문이나 using 지시문으로 사용하려는 항목의 네임스페이스를 선택합니다. 어셈블리를 참조하고 가져오면 액세스 가능한 모든 클래스, 속성, 메서드 및 해당 네임스페이스의 기타 멤버를 해당 코드가 사용자 파일에 포함된 것처럼 응용 프로그램에서 사용할 수 있습니다.

C#의 경우 한 응용 프로그램에서 동일한 어셈블리의 두 버전을 사용할 수도 있습니다. 자세한 내용은 extern alias를 참조하십시오.

어셈블리 만들기

빌드 메뉴에서 빌드를 클릭하거나, 명령줄 컴파일러를 사용하여 명령줄에서 빌드하는 방법으로 응용 프로그램을 컴파일합니다. 명령줄에서 어셈블리를 빌드하는 방법에 대한 자세한 내용은 Visual Basic의 경우 명령줄에서 빌드(Visual Basic)를 참조하고, C#의 경우 csc.exe를 사용한 명령줄 빌드를 참조하십시오.

참고 항목

작업

방법: 다른 응용 프로그램과 어셈블리 공유(C# 및 Visual Basic)

방법: 어셈블리 로드 및 언로드(C# 및 Visual Basic)

방법: 파일이 어셈블리인지 확인(C# 및 Visual Basic)

방법: 명령줄을 사용하여 어셈블리 만들기 및 사용(C# 및 Visual Basic)

연습: 관리되는 어셈블리의 형식 포함(C# 및 Visual Basic)

연습: Microsoft Office 어셈블리의 형식 정보 포함(C# 및 Visual Basic)

개념

C# 프로그래밍 가이드

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

Friend 어셈블리(C# 및 Visual Basic)

기타 리소스

Visual Basic 프로그래밍 가이드