WebView2 0x8007139F ERROR_INVALID_STATE 처리 방법

CreateCoreWebView2Controller() 함수가실패하고 에러 코드로 0x8007139F 을 리턴하는 경우 온라인에서 해결방법을 추적하다 보면 다양한 방법의 대처법이 제시되고 있다.

그 모든 방법을 찾아 헤매면서 고생했지만 결국은 10여일간을 허송생활을 하면서 포기할 즈음 너무나 단순하게 원인과 해결 방법을 찾게 되었다.

나와 같은 경우가 발생하는 상황은 WebView2 를 생성하는 모듈과 실제 사용하는모듈이 다른 경우에 해당한다. 즉, WebView2 의 생성은 별도의 dll, exe, ocx 등에서 생성하고 메인 모듈에서 이 모듈을 로딩하여 WebView2를 메인 모듈의 자식으로 생성하는 경우이다.

이 경우 두개의 모듈에 적용된 DPI 설정이 다르면 위의 0x8007139f 에러가 발생한다.
해결 방법은 두개의 DPI 설정을 동일하게 해주는 것이다. 이 설정은

프로젝트의 속성 / 매니페스트 도구 / 모든 옵션(or 입력 및 출력) / DPI 인식 을 찾아서 설정한다.

아래 그림에서와 같이 DPI 인식을 동일하게 설정해주어야 한다.
단지, 이 설정을 동일하게 하는 것으로 위의 0x8007139f 에러가 사라지고 WebView2 가 정상적으로 생성된다.

This entry was posted in Window Program and tagged , , , . Bookmark the permalink.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다