2016-06-13 4 views
1

: Managed Debugging Assistant 'DisconnectedContext' has detected a problem in 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\te.processhost.managed.exe'.관리 디버깅 도우미 'DisconnectedContext'나는 다음과 같은 오류를 받기 시작 유니티를 사용하는 일부 COM 객체 생성 VS2105에서 단위 테스트를 설정 한 후

내가 다른 사람이 있는지 확인하는 빠른 모습을 가지고 있었다를 동일한 문제가 있었고 문제에 대한 많은 해결책은 자체 스레드에서 테스트를 실행하거나 대상 아키텍처를 x64로 변경하는 것이 었습니다. 이 솔루션들 중 어느 것도 나에게 그 문제에 대한 해결 방법과 비슷하기 때문에 나에게 옳은 느낌이 들지 않았습니다.

그래서 약간의 생각을하고 나면 COM 객체가 테스트 프레임 워크에서 지우기에 충분한 시간이 주어지지 않는다는 것을 깨달았습니다. 그래서 나는 다음과 같은 해결책을 찾았다.

답변

1

이 문제를 해결하려면 I는 단위 테스트의 방법을 정리 눈물 다운/테스트에 다음 코드를 추가 : 유니티를 사용하는 경우

_unity.Dispose(); GC.Collect(); GC.WaitForPendingFinalizers();

는 첫 번째 라인 만하면된다 그러나의 주요 부분 수정은 마지막 두 줄입니다. 가비지 수집을 강제 실행 한 다음 현재 스레드가 완료 될 때까지 대기하도록 알립니다. 따라서 COM 개체를 올바르게 지울 수 있습니다.