C# 코드로 GAC 어셈블리 등록하기
예전에 MSDN Forum 에 자료를 찾던 중에 “C# 코드를 이용하여 GAC 에 어셈블리를 등록할 수 없나요?” 라는 질문을 본적이 있었습니다.
아마, 그때 답변은 엉뚱한 답변들이었죠. 물론, 저도 오늘의 이 코드를 보기 전까지 말이죠^^;
희미하게 기억이 날듯 말듯 합니다만, 그때 답변중의 내용이 RegisterAssembly 였던 것 같기도 합니다. 이 메서드는 COM Interop 에 등록하는 메서드인데 말이죠.. ㅎㅎ
그래서 혼자 생각했었습니다.
배포 시에 GAC 에 어셈블리를 등록할 경우가 생긴다면,,
1. GacUtil 을 리소스에 포함한다.
2. Deploy Project 에서 리소스를 파일로 복원하여, Command Prompt(Process.Start) 를 통해 GACUTIL 로 등록하고,
3. 배포를 종료한다
이런 시나리오를 머리 속으로 그렸던 적이 있었습니다.
하지만 오늘 단 한 줄이 이 코드를 보고, ‘정말 어리석었구나’ 느꼈답니다.
뭐 긴말 없이, 코드를 보시죠.
new System.EnterpriseServices.Internal.Publish()
.GacInstall(@”...Path...\ClassLibrary1.dll"); |
이렇게 한 줄로, GAC 에 어셈블리를 등록할 수 있었답니다. ( 두 줄이라고 우기지 마세요 -_-; )
아마 저처럼 테스트 해 보실 분도 계실 거라고 생각합니다. 10의 2~3명은 “어!! 안되는데요!!” 라고 하실겁니다.
Strong Key 를 주시고, 다시 해보세요^.^
( 훔… Strong Key 로 서명이 안되어 있어도, 오류는 없더군요 )
머.. 뒷북이라면 당신은 대략 “지못미!!”
Reference
|
'.NET > C#' 카테고리의 다른 글
[C# 4.0] Parallel Extension - [2] 병렬 처리 아키텍처 (0) | 2009.02.16 |
---|---|
[C# 4.0] Parallel Extension - [1] 병렬 처리 (0) | 2009.02.12 |
C# 코드로 GAC 어셈블리 등록하기 (0) | 2008.08.21 |
LINQ 퀴즈 문제 풀어봅시다 (0) | 2008.08.07 |
.NET Framework 2.0 에서 LINQ TO Object 사용하기 (1) | 2008.07.24 |
Custom LINQ Provider - [5]. LINQ To Naver Open API (0) | 2008.03.30 |