'); }
'); }
프로그램이 실행되는 모습
CLR(The Common Language Runtime)는 MSIL(Intermediate Language)를 실행함
Code는 MSIL로 compile됩
자바의 JRE와 class를 생각하면 될 것 같음
* assembly : 어떤 기능을 하는 하나의 모듈을 의미
* manifest : assembly가 동작하는 데 어떤 파일이 필요한 지 가지는 목록
* program : 하나 혹은 여러개의 assembly로 구성
* CLR은 assembly로부터 그것이 어떤 보안/권한 범위를 가지는지, 사용버전은 어디서부터 어디까지인지를 보고 실행하게 됨
* DLL지옥의 관점에서 Private Assembly, Shared Assembly
http://hoons.kr/Board.aspx?Name=cshaptip&Mode=2&BoardIdx=406&Key=&Value=
어셈블리는 DLL 지옥을 해결하였다는데…
앞에서 언급했듯이 직접 작성한 대부분의 어셈블리는 private이다. 그러므로 각 어플리케이션은 자체적으로 설치된 폴더에 있는 어셈블리를 참조한다. Private형식에서는 같은 이름의 여러버전이 있다하더라도 충돌을 피할 수 있다.
이해를 돕기위해 한가지 예를 들어본다.1. Assembly1이라는 이름의 어셈블리를 제작한다.2. Assembly1을 이용하는 Client1이라는 어플리케이션을 만든다.3. 클라이언트 프로그램을 c:\MyApp1이라는 폴더에 설치하고, Assembly1도 이 폴더에 설치한다.4. 며칠이 지난 후에 Assembly1이 수정이 되었다고 가정한다.5. 수정된 Assembly1을 이용한 클라이언트 어플리케이션(Client2)를 제작한다.6. 이 클라이언트 프로그램을 c:\MyApp2라는 폴더에 설치하고 Assembly1도 이 폴더에 설치한다.7. 각각의 프로그램은 같은 이름의 Assembly1이라는 어셈블리를 사용하고 있지만, 버전은 서로 다른 것
* 데브피아에서 퍼옴 왕성현 님의 강좌입니다.
*private assembly를 shared assembly로 만드는 과정
'Tech & IT > 프로그래밍' 카테고리의 다른 글
AfxBeginThread 로 생성한 스레드 종료시에 에러가 발생하는 경우 (0) | 2009.01.14 |
---|---|
First Chance Exception 에 대하여... (0) | 2009.01.14 |
CRichEditCtrl에서 GetLine(?) 문제점 (0) | 2008.12.30 |
IMPLEMENT_DYNAMIC, DECLARE_DYNAMIC 의문 (0) | 2008.12.30 |
VS2008에서 CWinAppEx과 afxcontrolbars.h 컴파일 문제 (0) | 2008.12.30 |