2019년 5월 20일 월요일

C# 프로젝트에 ocx 수동 삽입하기 - Inserting ocx into c# project manually

c# 프로젝트(윈폼/WPF)에 ocx 파일을 삽입할때 보통 UI 에서 추가하는데 이렇게 하면 참조에 아래 2개의 dll 이 자동 추가된다.

ocx 파일명 : DXMediaPlayer.ocx
참조 : AxInterop.DXMediaPlayerLib, Interop.DXMediaPlayerLib

위 2개의 참조경로를 따라면 보통 obj\Release(Debug) 아래 경로에 두 dll을 참조하고 실행경로에 복사되는데 이것은 좋은 방법이 아니다.

보통 obj 경로는 git 으로 관리하지않기 때문에 경우에 따라 참조파일을 잃어버릴수 있고 실행경로에 두 dll 파일이 없으면 실행파일이 ocx 를 사용할 수 없는 예외가 발생한다.

따라서 아래와 같은 방법으로 ocx 를 수동으로 추가하는 방법을 사용할 수 있다.

1. 시작 -> 모든 프로그램 -> Visual Studio 20XX -> Visual Studio Tools -> Developer Command Prompt for VS 20XX 실행

2. ocx 파일 경로로 이동

3. 경로>aximp /source DXMediaPlayer.ocx 실행

4. AxDXMediaPlayerLib.cs 파일과 DXMediaPlayerLib.dll, AxDXMediaPlayerLib.dll 3개의 파일이 생성된다

5. 이 중 AxDXMediaPlayerLib.cs, DXMediaPlayerLib.dll 두 개의 파일을 삽입을 원하는 프로젝트 경로로 복사

6. 프로젝트 참조에 DXMediaPlayerLib.dll 추가, 소스에 AxDXMediaPlayerLib.cs 추가

7. 빌드 후 Assembly.cs 파일에 버전에러 발생하면 해당 라인 주석처리

이렇게 추가하면 실행경로에 dll 파일이 없어도 실행가능하다.