OpenCV Sharp을 사용하여 C# 프로젝트를 개발할 때, 컴파일은 문제없이 완료되지만 실행 시 DLL 관련 에러가 발생하는 경우가 있습니다. 이러한 문제는 OpenCV Sharp 및 OpenCV 관련 DLL 파일들이 실행 폴더에 포함되지 않았을 때 자주 발생합니다. 프로젝트의 실행 환경에 필요한 모든 종속성 파일이 제대로 위치해 있지 않으면, 실행 파일은 필요한 DLL을 찾을 수 없어 실행 중에 오류를 발생시킵니다.
OpenCV Sharp Dll error 발생
OpenCV Sharp이 컴파일이 잘되는데 실행만 하면 에러납니다.
과연 원인이 뭘까요?
해결 방법
OpenCV Sharp 관련 에러를 해결하기 위해서는, OpenCV Sharp 및 OpenCV 관련 DLL 파일들을 실행 폴더에 포함시켜야 합니다.
다음은 이 과정을 수행하는 방법입니다
1. OpenCV Sharp 및 OpenCV 관련 DLL 확인
프로젝트에 사용된 OpenCV Sharp 버전과 호환되는 OpenCV 관련 DLL 파일들을 확인합니다.
2. DLL 파일 복사
확인한 DLL 파일들을 프로젝트의 실행 파일이 위치한 폴더로 복사합니다.
일반적으로는 bin\Debug 또는 bin\Release 폴더가 될 것입니다.
3. 프로젝트 설정 확인
Visual Studio에서 프로젝트 속성을 확인하여, 빌드 이벤트 또는 참조 설정을 통해 필요한 DLL 파일들이 자동으로 실행 폴더로 복사되도록 설정할 수도 있습니다.
4. 프로그램 재실행
필요한 DLL 파일들을 모두 복사한 후, 프로그램을 다시 실행하여 에러가 해결되었는지 확인합니다.
추가 팁
DLL 파일 위치
OpenCV Sharp을 NuGet 패키지로 설치한 경우, 패키지 폴더 내에서 관련 DLL 파일들을 찾을 수 있습니다. 패키지 폴더는 일반적으로 프로젝트 폴더의 packages 디렉토리 안에 위치합니다.
자동 복사 설정
프로젝트의 참조 설정에서 OpenCV Sharp 관련 DLL을 참조할 때, "복사 로컬" 속성을 "True"로 설정하면, 빌드 시 자동으로 실행 폴더에 DLL 파일이 복사됩니다.
환경 변수
시스템 환경 변수에 OpenCV 관련 디렉토리를 추가하여, 실행 파일이 DLL을 찾을 수 있도록 하는 방법도 있습니다. 하지만 이 방법은 환경에 따라 DLL 충돌 등의 문제를 일으킬 수 있으므로 주의가 필요합니다.
결론
DLL 에러는 종종 개발 과정에서 마주치는 문제 중 하나이며, 특히 외부 라이브러리를 사용할 때 자주 발생합니다. 이러한 문제를 미리 인지하고 적절히 대비한다면, 개발 과정에서 발생할 수 있는 시간 소모와 스트레스를 줄일 수 있습니다.
'Language > C# WPF' 카테고리의 다른 글
[C#] 디버깅 관리자권한(debug administrator) / click once error (0) | 2019.11.05 |
---|---|
[WPF] shape 이미지 관련 - Ellipse, Rectangle background image(BitmapImage to ImageBrush) (0) | 2019.08.26 |
[C#] 크로스 스레드 작업이 잘못되었습니다. 일때는 delegate, Involk를 사용하자. (0) | 2014.11.20 |
[C#] ConfigurationManager.AppSettings 사용하기 (0) | 2014.11.10 |
[C#] OS에 따른 Form크기의 자동 배율 조정 (0) | 2014.09.04 |