반응형
어셈블리는 전용과 공유 두가지로 분리됩니다.
전용 : 자신만이 사용하는 어셈블리어, DLL파일이 프로젝트에 복사됨
공유 : 여러 사람들이 사용 가능한 어셈블리어로 C:\Windows\assembly
폴더에 DLL파일을 추가 하여 사용 , 참조만 하고 복사되지 않음
전역(공유)어셈블리캐시 예제입니다.
Watch.DLL 만들기 |
1. 새프로젝트 - 빈 솔루션 생성 후 2. 빈 솔루션 - 추가 - 새프로젝트 - C# - Windows - 클래스 라이브러리 추가 (이름 : Watch) 3. 추가한 Watch에서 'program.cs' 파일을 삭제 후 Watch에서 클래스 추가 (이름 : Clock)
{ public class Clock { public static string NowTime() { return DateTime.Now.ToShortDateString(); } } } |
코드 작성후 솔루션 빌드를 하여 Watch.DLL 파일을 생성합니다.
생성한 Watch.DLL 파일을 전역어셈블리어로 사용하기 위해서
C:\WINDOWS\assembly에 Watch.DLL 파일을 복사 붙여넣기를 합니다.
[그림28-1]
붙여넣기 하면 "어셈블리 'Watch.dll'에 강력한 이름이 필요합니다."라는
경고 메세지가 나타납니다.
이러한 메세지가 나타나야 정상이라고 보시면 됩니다.
이 문제를 해결하기 위해서는 이보다 강력한 키값을 주면 됩니다.
[그림28-2]
시작 - 모든프로그램 - Microsoft Visual Studio 2008 -
Visual Studio Tools-Visual Studio 2008 명령 프롬프트 실행
솔루션탐색기에서 생성한 클래스 라이브러리의 속성페이지로 이동합니다.
속성페이지 - 성명탭에서 - 어셈블리 성명 채크 후 "강력한 이름 키 파일 선택"
클릭 후 위에서 명령프롬프트에서 생성한 Watch.snk를 지정 후
속성페이지를 닫고 솔루션탐색기에 Watch.snk가 추가 되었는지 확인 합니다.
빌드 한 후 해당 프로젝트의 폴더에서 Debug 폴더로 이동하여
Watch.DLL 파일을 다시 한 번 C:\Windows\assembly폴더 복사(이동)
2. 추가한 콘솔응용프로그램에서 참조페이지를 열고 Watch를 추가합니다.
3. 코드 작성 후 UseClock프로젝트를 시작페이지로 설정 후 빌드 후 결과확인
[그림28-6][그림28-7]
90Assembly.zipC:\WINDOWS\assembly에 Watch.DLL 파일을 복사 붙여넣기를 합니다.
[그림28-1]
붙여넣기 하면 "어셈블리 'Watch.dll'에 강력한 이름이 필요합니다."라는
경고 메세지가 나타납니다.
이러한 메세지가 나타나야 정상이라고 보시면 됩니다.
이 문제를 해결하기 위해서는 이보다 강력한 키값을 주면 됩니다.
[그림28-2]
시작 - 모든프로그램 - Microsoft Visual Studio 2008 -
Visual Studio Tools-Visual Studio 2008 명령 프롬프트 실행
명령프롬프트에서 snk파일을 생성합니다.
다시 Visual Studio 작업 화면으로 넘어갑니다.[그림28-3] snk파일을 만들 경로 이동 후
sn.exe -k Watch.snk를 입력 후 결과 확인
sn.exe -k Watch.snk를 입력 후 결과 확인
솔루션탐색기에서 생성한 클래스 라이브러리의 속성페이지로 이동합니다.
속성페이지 - 성명탭에서 - 어셈블리 성명 채크 후 "강력한 이름 키 파일 선택"
클릭 후 위에서 명령프롬프트에서 생성한 Watch.snk를 지정 후
속성페이지를 닫고 솔루션탐색기에 Watch.snk가 추가 되었는지 확인 합니다.
[그림28-4]Watch클래스 라이브러리 "다시 빌드"
Watch.DLL 파일을 다시 한 번 C:\Windows\assembly폴더 복사(이동)
[그림28-5]오류 없이 복사가 된것을 확인 합니다.
1. 프로젝트에서 "C# - 콘솔응용프로그램"을 추가합니다.(UseWatch) 전역어셈블리로 추가한 Watch.DLL 파일을 이용한 간단한 예제 입니다.
2. 추가한 콘솔응용프로그램에서 참조페이지를 열고 Watch를 추가합니다.
3. 코드 작성 후 UseClock프로젝트를 시작페이지로 설정 후 빌드 후 결과확인
[그림28-6][그림28-7]
Programe.cs |
namespace UseWatch { public class Program { static void Main(string[] args) { Console.WriteLine(Watch.Clock.NowTime()); } } } |
결과확인 |
[그림28-8] 참조파일이 추가되는것을 확인 할 수 있는데 전역(공통) 어셈블리를 통해서 참조파일이 추가 되지 않았음을 확인 할 수 있습니다. [그림28-9] |
반응형
'C#' 카테고리의 다른 글
28.C#_WinForm - 키 다운 이벤트 ( KeyDown Event) (2) | 2009.09.02 |
---|---|
91.C# - 스레드(Thread) 와 프로세스(Process) (0) | 2009.09.02 |
27.C#_WinForm - DLL 파일 만들기 (3) | 2009.09.01 |
26.C#_WinForm - 드래그 앤 드롭 ( Drag And Drop ) (3) | 2009.08.31 |
25.C#_WinForm - 인쇄 미리보기 ( Print Preview ) (6) | 2009.08.31 |
Comments