다음을 통해 공유


어셈블리 매니페스트

정적 또는 동적 어셈블리의 모든 어셈블리에는 어셈블리의 요소가 서로 어떻게 관련되는지 설명하는 데이터 컬렉션이 포함되어 있습니다. 어셈블리 매니페스트에는 이 어셈블리 메타데이터가 포함됩니다. 어셈블리 매니페스트에는 어셈블리의 버전 요구 사항 및 보안 ID를 지정하는 데 필요한 모든 메타데이터와 어셈블리의 범위를 정의하고 리소스 및 클래스에 대한 참조를 확인하는 데 필요한 모든 메타데이터가 포함됩니다. 어셈블리 매니페스트는 CIL(공용 중간 언어) 코드가 있는 PE 파일( .exe 또는 .dll) 또는 어셈블리 매니페스트 정보만 포함하는 독립 실행형 PE 파일에 저장할 수 있습니다.

다음 그림에서는 매니페스트를 저장할 수 있는 다양한 방법을 보여 줍니다.

단일 파일 어셈블리 및 다중 파일 어셈블리 구성의 매니페스트를 보여 주는 다이어그램

연결된 파일이 하나 있는 어셈블리의 경우 매니페스트가 PE 파일에 통합되어 단일 파일 어셈블리를 형성합니다. 독립 실행형 매니페스트 파일 또는 어셈블리의 PE 파일 중 하나에 통합된 매니페스트를 사용하여 다중 파일 어셈블리를 만들 수 있습니다.

각 어셈블리의 매니페스트는 다음 함수를 수행합니다.

  • 어셈블리를 구성하는 파일을 열거합니다.

  • 어셈블리의 형식 및 리소스에 대한 참조가 해당 선언 및 구현을 포함하는 파일에 매핑되는 방식을 제어합니다.

  • 어셈블리가 종속되는 다른 어셈블리를 열거합니다.

  • 어셈블리의 소비자와 어셈블리의 구현 세부 정보 간에 간접 참조 수준을 제공합니다.

  • 어셈블리가 자체 설명형이 되도록 만듭니다.

어셈블리 매니페스트 내용

다음 표에서는 어셈블리 매니페스트에 포함된 정보를 보여줍니다. 어셈블리 이름, 버전 번호, 문화권 및 강력한 이름 정보의 처음 네 가지 항목은 어셈블리의 ID를 구성합니다.

정보 설명
어셈블리 이름 어셈블리의 이름을 지정하는 텍스트 문자열입니다.
버전 번호 주 버전 및 부 버전 번호, 수정 버전 및 빌드 번호입니다. 공용 언어 런타임은 이러한 숫자를 사용하여 버전 정책을 적용합니다.
문화 어셈블리가 지원하는 문화권 또는 언어에 대한 정보입니다. 이 정보는 어셈블리를 문화권 또는 언어별 정보를 포함하는 위성 어셈블리로 지정하는 데만 사용해야 합니다. 문화권 정보가 있는 어셈블리는 자동으로 위성 어셈블리로 간주됩니다.
강력한 이름 정보 어셈블리에 강력한 이름이 지정된 경우 게시자의 공개 키입니다.
어셈블리의 모든 파일 목록 어셈블리에 포함된 각 파일의 해시 및 파일 이름입니다. 어셈블리를 구성하는 모든 파일은 어셈블리 매니페스트를 포함하는 파일과 동일한 디렉터리에 있어야 합니다.
형식 참조 정보 런타임에서 형식 참조를 선언 및 구현이 포함된 파일에 매핑하는 데 사용하는 정보입니다. 이것은 어셈블리에서 내보내진 형식에 사용됩니다.
참조된 어셈블리에 대한 정보 어셈블리에서 정적으로 참조하는 다른 어셈블리 목록입니다. 각 참조에는 어셈블리 이름이 강력한 경우 종속 어셈블리의 이름, 어셈블리 메타데이터(버전, 문화권, 운영 체제 등) 및 공개 키가 포함됩니다.

코드에서 어셈블리 특성을 사용하여 어셈블리 매니페스트에서 일부 정보를 추가하거나 변경할 수 있습니다. 상표, 저작권, 제품, 회사 및 정보 버전을 비롯한 버전 정보 및 정보 특성을 변경할 수 있습니다. 어셈블리 특성의 전체 목록은 어 셈블리 특성 설정을 참조하세요.

참고하십시오