■ 강력한 형식의 어셈블리에서 서명되지 않은 어셈블리 참조 문제 해결하기

------------------------------------------------------------------------------------------------------------------------

강력한 형식의 어셈블리에서 서명되지 않은 어셈블리를 참조해 컴파일하고 프로그램을 실행하면 아래와 같은 에러가 발생한다.

 

 

처리되지 않은 예외: System.IO.FileLoadException: 파일이나 어셈블리 'Dapper, Version=1.50.2.0, Culture=neutral, PublicKeyToken=null' 또는

여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 강력한 이름의 어셈블리가 필요합니다. (예외가 발생한 HRESULT: 0x80131044)

 

 

서명되지 않은 어셈블리의 소스 코드에 서명을 하고 다시 빌드하면 문제가 해결되나 해당 소스를 구할 수 없는 경우 아래와 같이 처리한다.

 

1. 비주얼 스튜디오 폴더에서 [개발자 명령 프롬프트]를 실행한다.

 

2. 아래 명령을 실행해 해당 DLL에 대한 IL 코드를 생성한다.

 

 

ildasm /all /out=dapper.il dapper.dll

 

 

3. 아래 명령을 실행해 서명 파일을 생성한다.

 

 

sn -k dapper.snk

 

 

4. 서명 파일을 추가해 새로운 DLL 파일을 생성한다.

 

 

ilasm /dll /key=dapper.snk dapper.il

 

 

5. 새로 생성된 어셈블리를 참조해 사용한다.

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요