원본 : http://kaki104.tistory.com/351
Design time debug in Visual Studio 2013
개발을 하다보면, 처음에는 디자인 타임에 데이터들이 잘 보이다가 어느 순간에 보이지 않는 경우가 발생한다. 음..머 여러가지 경우가
있겠지만.. 일반적으로는 디자인 타임 데이터 인스턴스를 할 때 오류가 발생해서, 인스턴스가 되지 않는 경우가 대부분이다.
아래는 지금 개발 중인 앱의 xaml의 내용인데, ItemPageVM이라는 ViewModel이 디자인 타임 인스턴스 오류가 발생해서
화면에 데이터가 나타나지 않는다.
텅텅 비어있는 데이터들..음
그래서, 디자인 타임 데이터를 디버깅 할 수 있는 방법을 찾아서 정리를 했다.
1. 참고 포스트
Visual Studio 2013 and Blend design-time exception debugging
http://www.jayway.com/2013/12/25/visual-studio-2013-and-blend-design-time-exception-debugging/
2. 사용한 방법
참고 포스트에서는 2개의 Visual Studio를 사용했으나, Visual Studio + Blend를 사용해도 된다.
스탭 1. Visual Studio 2013을 실행하고 프로젝트을 연다.
스탭 2. Disable Just My Code
Option -> Debugging -> Enable Just My Code -> Uncheck
스탭 3. Enable first chance handling of CLR exceptions
Debug -> Exceptions -> Common Language Runtime Exceptions -> Check
-> OK
스탭 4. Open in Blend 메뉴나 직접 Blend를 선택해서 실행 하고, 프로젝트를 연다.
스탭 5. Attach to XAML designer worker process
Debug -> Attach to Process -> Select -> Debug these code types ->
Managed (v4.5, v4.0) -> OK
XDesProc.exe -> Attach
* 여기서 XDesProc.exe 프로세스가 2개 있을 수 있다. 이 경우 맨 아래 바로 위에 것을 선택하는 것이 좋다. 더 정확하게
하려면, Blend를 열기 전에 이 화면에 들어와서 XDesProc.exe가 있는지 확인 하고 ID를 기억 하고 있다가, 그 ID가 아닌 녀석을
선택하면 된다.
스탭 6. Blend에서 문제의 뷰를 열어 준다.(이미 열려있으면 닫고 다시 열어 준다)
Visual Studio에 아래와 같은 팝업이 출력되고, Yes를 선택한다.
문제의 뷰 모델에서는 디자인 타임에서는 인스턴스가 될 수 없는 녀석이 끼어 들어가 있어서 발생한 오류이다.
오류난 부분을 수정하고, 다시 디자인 뷰를 확인한다.
아함.. 이제 다시 작업 시작........
3. 디버깅 작업이 완료되면, 설정을 원래대로 돌려 놓는 것을 잊지말자!!!
디버깅이 무지하게 느리게 진행될 것이다...
그러나, 디버깅 빌드 시간이 쉴 수 있는 시간이라면 그냥 두어도 상관 없는......................