공용 언어 런타임을 사용하는 어셈블리의 모든 버전 관리가 어셈블리 수준에서 수행됩니다. 어셈블리의 특정 버전과 종속 어셈블리 버전은 어셈블리의 매니페스트에 기록됩니다. 런타임에 대한 기본 버전 정책은 구성 파일(애플리케이션 구성 파일, 게시자 정책 파일 및 컴퓨터의 관리자 구성 파일)에서 명시적 버전 정책으로 재정의되지 않는 한 애플리케이션이 빌드 및 테스트된 버전에서만 실행되는 것입니다.
런타임은 어셈블리 바인딩 요청을 해결하기 위해 여러 단계를 수행합니다.
바인딩할 어셈블리의 버전을 확인하려면 원래 어셈블리 참조를 확인합니다.
버전 정책을 적용하기 위해 적용 가능한 모든 구성 파일을 확인합니다.
원래 어셈블리 참조 및 구성 파일에 지정된 리디렉션에서 올바른 어셈블리를 결정하고 호출 어셈블리에 바인딩해야 하는 버전을 결정합니다.
전역 어셈블리 캐시, 구성 파일에 지정된 코드베이스를 확인한 다음 런타임에서 어셈블리를 찾는 방법에 설명된 검색 규칙을 사용하여 애플리케이션의 디렉터리 및 하위 디렉터리를 확인합니다.
다음 그림에서는 다음 단계를 보여 줍니다.
애플리케이션 구성에 대한 자세한 내용은 앱 구성을 참조하세요. 바인딩 정책에 대한 자세한 내용은 런타임에서 어셈블리를 찾는 방법을 참조하세요.
버전 정보
각 어셈블리에는 버전 정보를 표현하는 두 가지 방법이 있습니다.
어셈블리 이름 및 문화권 정보와 함께 어셈블리의 버전 번호는 어셈블리 ID의 일부입니다. 이 숫자는 런타임에서 버전 정책을 적용하는 데 사용되며 런타임 시 형식 확인 프로세스에서 핵심적인 역할을 합니다.
정보 제공용으로만 포함된 추가 버전 정보를 나타내는 문자열인 정보 버전입니다.
어셈블리 버전 번호
각 어셈블리에는 ID의 일부로 버전 번호가 있습니다. 따라서 버전 번호와 다른 두 어셈블리는 런타임에서 완전히 다른 어셈블리로 간주됩니다. 이 버전 번호는 물리적으로 다음 형식의 네 부분으로 구성된 문자열로 표시됩니다.
< 주 버전>입니다.<부 버전>입니다.<빌드 번호>입니다.<개정판>
예를 들어 버전 1.5.1254.0은 1을 주 버전으로, 5를 부 버전으로, 1254를 빌드 번호로, 0을 수정 번호로 나타냅니다.
버전 번호는 어셈블리 이름 및 공개 키를 비롯한 다른 ID 정보뿐만 아니라 애플리케이션과 연결된 다른 어셈블리의 관계 및 ID에 대한 정보와 함께 어셈블리 매니페스트에 저장됩니다.
어셈블리가 빌드되면 개발 도구는 어셈블리 매니페스트에서 참조되는 각 어셈블리에 대한 종속성 정보를 기록합니다. 런타임은 관리자, 애플리케이션 또는 게시자가 설정한 구성 정보와 함께 이러한 버전 번호를 사용하여 참조된 어셈블리의 적절한 버전을 로드합니다.
런타임은 버전 관리 목적으로 일반 어셈블리와 강력한 이름의 어셈블리를 구분합니다. 버전 검사는 강력한 이름의 어셈블리에서만 발생합니다.
버전 바인딩 정책을 지정하는 방법에 대한 자세한 내용은 앱 구성을 참조하세요. 런타임에서 버전 정보를 사용하여 특정 어셈블리를 찾는 방법에 대한 자세한 내용은 런타임에서 어셈블리를 찾는 방법을 참조하세요.
어셈블리 정보 버전
정보 버전은 정보 제공 목적으로만 어셈블리에 추가 버전 정보를 연결하는 문자열입니다. 이 정보는 런타임에 사용되지 않습니다. 텍스트 기반 정보 버전은 제품의 마케팅 문헌, 패키징 또는 제품 이름에 해당하며 런타임에는 사용되지 않습니다. 예를 들어 정보 버전은 "공용 언어 런타임 버전 1.0" 또는 "NET Control SP 2"일 수 있습니다. Microsoft Windows의 파일 속성 대화 상자 버전 탭에서 이 정보는 "제품 버전" 항목에 표시됩니다.
비고
텍스트를 지정할 수 있지만 문자열이 어셈블리 버전 번호에서 사용하는 형식이 아니거나 해당 형식이지만 와일드카드가 포함된 경우 컴파일에 경고 메시지가 나타납니다. 이 경고는 무해합니다.
정보 버전은 사용자 지정 특성을 System.Reflection.AssemblyInformationalVersionAttribute사용하여 표시됩니다. 정보 버전 특성에 대한 자세한 내용은 어셈블리 특성 설정을 참조하세요.
참고하십시오
.NET