http://ngmaster.ignorelist.com/ngmaster/xe/index.php?mid=COMMUNITY_TIP_AND_TECH&document_srl=24352
소스가 없는 라이브러리를 강력한 이름으로 서명할일이 발생할만한 상황은 거의 없겠지만, 막상 문제가 발생되면 난감한 상황에 처하게 됩니다. 하지만 소스(프로젝트)가 있다면 Visual Studio에서 해당 프로젝트의 속성에서 간단하게 강력한 이름으로 라이브러리 또는 어셈블리에 서명할 수 있습니다.
하지만, 지금 상황은 소스가 없기 때문에 Visual Studio의 도움을 받을 수 없습니다-_-; 수동으로 작업할 수밖에 없죠. 이런 일련의 작업들을 한번에 처리할 수 있도록 프로그램을 하나 만들었는데요. 아래 링크에서 내용을 확인하고 다운로드 받을 수 있습니다.
수동으로 어셈블리에 서명하는 방법...
먼저 Visual Studio의 Developer Command Prompt를 실행합니다. 시작 버튼 옆 "Windows 검색"에 "dev"를 입력하면 목록에 보여질겁니다. 물론, Visual Studio가 먼저 설치되어 있어야 합니다.
강력한 이름으로 서명할 어셈블리가 있는 폴더로 이동합니다.
cd\ (현재 드라이브의 루트 디렉토리로 이동)
cd StrongNameSignMakerSample (강력한 이름으로 서명할 어셈블리가 있는 디렉토리로 이동)
sn -v CABDevExpress.ExtensionKit.dll (이 어셈블리가 강력한 이름으로 서명되었는지 확인)
위 이미지에서 확인한 것처럼 해당 어셈블리는 강력한 이름으로 서명되지 않았습니다. 어셈블리를 강력한 이름으로 서명하기 위해서는 "강력한 이름 키 파일"이 필요합니다.
sn -k NgmasterKey.snk (NgmasterKey.snk 강력한 이름 키 파일 생성)
댓글