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
 

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by 땡초 POWERUMC
TAG ,

댓글을 달아 주세요