본문 바로가기
MS-SQL/CLR-UserDefinedFunctions

[SQLCLR] 외부 .NET Library 참조 시에 0x80131044 오류 해결 방안

by Hwoarang757 2020. 11. 25.

처리되지 않은 예외: System.IO.FileLoadException: 파일이나 어셈블리 '~~~~~~~~~~~~~~~~'

여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 강력한 이름의 어셈블리가 필요합니다.

(예외가 발생한 HRESULT: 0x80131044)

 

Smb 공유를  이용한 파일 복사 테스트 진행 중 , SharpCifs 라이브러리 참조 후  , Assembly 생성 및 FUNCTION 생성 후

CLR 함수 호출 시에 위와 같은 에러가 발생 하였습니다. 

 

아래 출처 블로그에서 많은 정보 얻어 해결 하였습니다.

 

출처 : ICODEBROKER :: [C#/COMMON] 강력한 형식의 어셈블리에서 서명되지 않은 어셈블리 참조 문제 해결하기 (tistory.com)

 

SharpCifs 출처 [ Smb 파일 공유 접근 ] 

출처 : SharpCifs.Std - Cross-Platform SMB Client implements on C# (dobes.jp)

출처 : GitHub - ume05rw/SharpCifs.Std: SharpCifs.Std is a port from SharpCifs to .NET Standard. Original SharpCifs: https://github.com/zinkpad/SharpCifs

 

# ildasm /all /out=SharpCifs.Core.il  SharCifs.Core.dll

# sn -k SharpCifs.Cokre.snk   
   Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.0   
   Copyright (c) Microsoft Coporation. All rights reserved
   
   키 쌍을 SharpCifs.Core.snk 에 썼습니다.
   
# ilasm /dll /key=SharpCifs.Core.snk SharpCifs.Core.il
~~~ 출력 내용

위 3가지 명령어 실행 완료 후 , SharpCifs.dll 라이브러리와 , CLR DLL을 복사 한 후 Microsoft SQL Server에서 Create Assembly 함수와 , Create Function 함수 생성 후 Function 호출 시에 정상적으로 동작 하였습니다.