반응형

오늘 WinRT로 프로젝트를 제작하면서 OpenCV를 사용해야해서 OpenCV 코드를 작성하고 컴파일을 했는데 컴파일은 분명 잘되는데 프로그램을 실행하면서 처음에는 잘 되다가 다시 실행하면 아래 사진 처럼 오류가 난다.. 도무지 모르겠는데.. 그러다가 12시간 동안 뭔 문제인지 찾다가 알아냈다. (참고로 진짜 12시간 걸렸다.)

Windows 스토어 응용 프로그램 'APP_ID'을(를) 활성화할 수 없습니다. 활성화 요청이 실패했습니다(오류: '앱이 시작되지 않았습니다').

문제 해결에 필요한 정보는 도움말을 참조하십시오.

 

일단 이 원인.. 잘은 모르겠지만 프로그램을 실행하는 도중에 Console 창에서 오류가 나는걸 못 띄우니 여기에서라도 실행할 때 오류를 띄우는 것 같다. 그렇다 보니 원인도 모르겠고.. 

디버깅을 할려고 해도 처음부터 저게 떠버려서 디버깅도 할 수가 없었다..

 

아무튼 방법은 찾았는데 그냥 OpenCV dll 파일이 없어서였다.. (왜 이것 때문에.. 12시간을 고생한거지;;)

 

OpenCV VCPKG WinRT용 설치

일단 한가지 알아낸 것이 있는데 WinRT에서 OpenCV를 돌릴려면 WinRT 용으로 바꿔야하는 것 같다.

WinRT는 UWP로 뭐 돌아가는건데 VCPKG에서 UWP로 설치하는 버전이 있다.

설치는 아래처럼 하면 된다.

vcpkg install opencv4:x64-uwp

이런식으로 설치하면 uwp 버전으로 설치가 된다.

 

오류 해결

앞에서 말했 듯이 그냥 이건 dll 파일이 없어서 생긴 오류이다. 실행에 필요한 dll 파일을 아래 경로에 붙여넣기 하면 오류가 해결된다.

<ProjectName>\x64\Release\<ProjectName>\AppX

그런데 한가지 문제가 있다.. 빌드 할 때마다 dll 파일이 사라져서 자동으로 복붙이 되게 해야하는데

이럴 때는 방법이 있다. 

 

한가지는 그냥 Visual Studio 프로젝트 파일에서 새 필터로 dll 파일 추가해서 하는 방법이 있는데 이건 비추하고..

다른 방법으로는 자동으로 복붙되게 하는 것이다.

 

일단 프로젝트 파일을 오른쪽 클릭하고 속성을 열어서 나오는 창에서

빌드 이벤트의 빌드 후 이벤트로 들어간다.

들어가게 되면 명령줄이 있는데 여기에 코드만 넣으면 된다.

 

일단 빌드 후 이벤트는 말그대로 빌드가 된 후에 자동으로 명령줄에 있는걸 실행하게 되는 것이다.

 

코드는 이걸 넣으면 된다!

xcopy /y "$(OutDir)\*.dll" "$(OutDir)\AppX"

일단 내가 대충 만들어서 해봤을 때 되는 코드이니.. 이게 잘 되는 코드인지는 모르겠다만.. 아무튼 난 저걸 명령줄에 넣어서 했더니 자동으로 복붙이 되었고 해결이 되었다.

 

코드는 대충 AppX에는 dll이 없지만 다행이도 출력 폴더에는 dll 파일이 있다. 그래서 모든 dll 파일을 가지고 AppX 폴더로 붙여 넣는 코드이다.

 

아무튼 이걸로 해결!

반응형

+ Recent posts