원문 :Godffs-90.C# - 전역어셈블리캐시 ( Assembly )
위의 원본 문을 참고 하고
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 파일을 복사 붙여넣기를 합니다.
붙여넣기 하면 "어셈블리 'Watch.dll'에 강력한 이름이 필요합니다."라는
경고 메세지가 나타납니다.
이러한 메세지가 나타나야 정상이라고 보시면 됩니다.
이 문제를 해결하기 위해서는 이보다 강력한 키값을 주면 됩니다.
시작 - 모든프로그램 - Microsoft Visual Studio 2008 -
Visual Studio Tools-Visual Studio 2008 명령 프롬프트 실행
솔루션탐색기에서 생성한 클래스 라이브러리의 속성페이지로 이동합니다.
속성페이지 - 성명탭에서 - 어셈블리 성명 채크 후 "강력한 이름 키 파일 선택"
클릭 후 위에서 명령프롬프트에서 생성한 Watch.snk를 지정 후
속성페이지를 닫고 솔루션탐색기에 Watch.snk가 추가 되었는지 확인 합니다.
Watch클래스 라이브러리 "다시 빌드"
빌드 한 후 해당 프로젝트의 폴더에서 Debug 폴더로 이동하여
Watch.DLL 파일을 다시 한 번 C:\Windows\assembly폴더 복사(이동)
오류 없이 복사가 된것을 확인 합니다.
1. 프로젝트에서 "C# - 콘솔응용프로그램"을 추가합니다.(UseWatch)
2. 추가한 콘솔응용프로그램에서 참조페이지를 열고 Watch를 추가합니다.
3. 코드 작성 후 UseClock프로젝트를 시작페이지로 설정 후 빌드 후 결과확인
C:\WINDOWS\assembly에 Watch.DLL 파일을 복사 붙여넣기를 합니다.
[그림28-1]
붙여넣기 하면 "어셈블리 'Watch.dll'에 강력한 이름이 필요합니다."라는
경고 메세지가 나타납니다.
이러한 메세지가 나타나야 정상이라고 보시면 됩니다.
이 문제를 해결하기 위해서는 이보다 강력한 키값을 주면 됩니다.
[그림28-2]
시작 - 모든프로그램 - Microsoft Visual Studio 2008 -
Visual Studio Tools-Visual Studio 2008 명령 프롬프트 실행
명령프롬프트에서 snk파일을 생성합니다.
snk파일을 만들 경로 이동 후
sn.exe -k Watch.snk를 입력 후 결과 확인
다시 Visual Studio 작업 화면으로 넘어갑니다.[그림28-3]
sn.exe -k Watch.snk를 입력 후 결과 확인
솔루션탐색기에서 생성한 클래스 라이브러리의 속성페이지로 이동합니다.
속성페이지 - 성명탭에서 - 어셈블리 성명 채크 후 "강력한 이름 키 파일 선택"
클릭 후 위에서 명령프롬프트에서 생성한 Watch.snk를 지정 후
속성페이지를 닫고 솔루션탐색기에 Watch.snk가 추가 되었는지 확인 합니다.
[그림28-4]
Watch.DLL 파일을 다시 한 번 C:\Windows\assembly폴더 복사(이동)
[그림28-5]
전역어셈블리로 추가한 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] 보통 해당 프로젝트에 참조파일을 추가 하게 되면 빌드(실행)시 "Debug폴더"에 참조파일이 추가되는것을 확인 할 수 있는데 전역(공통) 어셈블리를 통해서 참조파일이 추가 되지 않았음을 확인 할 수 있습니다. [그림28-9] |
'Microsoft > C# & ASP.NET' 카테고리의 다른 글
IE7~9 에서 UI 또는 이미지가 깨져 보일때 문제 (0) | 2014.03.19 |
---|---|
ASP.NET 특수태그(special tag) 설명 (0) | 2014.03.13 |
C# 어셈블리 묶기( .net DLL Merge) (0) | 2014.03.05 |
JQuery 참고 사이트[펌] (0) | 2013.07.23 |
[펌]COM+ 등록방법 (0) | 2013.05.28 |