닷넷 전용 어셈블리 General .NET2008/04/27 00:38
l 어셈블리 – 전용(Private) 또는 공유(Shared) 형태로 배포됨.
l 전용과 공유의 차이점 – 명명 규칙과 버전관리 정책
l 전용 어셈블리의 특징
n 배포된 응용 프로그램에 의해서만 이용될 수 있는 모듈들의 집합.
n 해당 형식들을 ‘소유하는’ 응용 프로그램만이 이 형식들을 사용할 수 있고 시스템의 다른 응용 프로그램과 공유하지 않게 한다는 것을 의미.
n 클라이언트 응용 프로그램과 동일한 디렉토리(응용 프로그램 디렉토리)나 그 하위 디렉토리에 있어야 함.
n 전용 어셈블리의 resolution과 로딩은 어셈블리가 위치한 응용 프로그램 디렉토리(bin 디렉토리)에서 일어난다. 옮겨도 실행됨.
n 삭제를 하여도 머신의 다른 응용 프로그램에는 손상을 주지 않음.
l 전용 어셈블리 프로빙(기초)
n 프로빙 – 외부 어셈블리 참조자를 정확히 상응하는 바이너리 파일에 매핑하는 과정
n 프로빙이란?
u 닷넷 런타임이 어떤 모듈의 매니페스트로부터 .assembly extern CarLibrary 라는 라인을 읽게 되면 CarLibrary.dll이라는 이름의 파일을 검색한다. 이 때 이 파일을 검색할 수 없게 된다면 *.exe 버전을 검색하게 된다. 이 두 파일이 모두 검색되지 않으면 런타임 예외를 발생시킨다. 그러나 XML 구성 파일(*.config)을 이용하게 되면 런타임이 응용 프로그램 디렉토리 밖의 다른 위치에 에서 프로브하게 할 수 있다.
l 전용 어셈블리 식별하기
n 전용 어셈블리 식별자 – 문자열 이름과 숫자 버전으로 구성.
n 문자열 이름 – 어셈블리의 매니페스트를 포함하는 바이너리 모듈의 이름에 기초해서 만들어진다.
Ex) CarLibrary.dll 어셈블리의 매니페스트
.assembly CarLibrary
{
….
.ver 1:0:454:30104 ß--- 버전 번호는 다를 수 있다.
}
어셈블리의 버전 정책은 닷넷 런타임이 어셈블리를 로딩할 때 적용하려 하지 않을 것이다. 그 이유는 이 전용 어셈블리를 알고 있는 것은 바로 해당 클라이언트 응용 프로그램밖에 없기 때문이다. 그렇기 때문에 전용 어셈블리에 대해서는 정확한 버전 검사를 할 필요가 없는 것이다.
Reference
1. Part3 .NET 어셈블리를 이용한 프로그래밍, 9장 .NET 어셈블리, C# and the .NET Platform, p.440~442
'General .NET' 카테고리의 다른 글
| 닷넷2.0을 시작하며... (0) | 2008/07/22 |
|---|---|
| 세티의 닷넷강좌를 다시 살리겠습니다. (0) | 2008/07/22 |
| 닷넷 전용 어셈블리 (0) | 2008/04/27 |
| 델리게이트(1) (0) | 2008/04/27 |
| C# 전처리기 지시문 (0) | 2008/04/27 |
| 기초 C# - 제너릭 (0) | 2008/04/27 |
