1

나는 method1을 가지고 있는데, 이것은 실행 중에 동적으로 결정되는 타입의 method2를 호출한다. 형식은 내가 가진 원본 참조 된 어셈블리에 있습니다. method2에 대한 호출에서 method1에 중단 점을 넣었고 .cs 파일에 method2에 중단 점이 있습니다. Visual Studio 2015 업데이트 3 및 Resharper를 사용하고 있습니다. (나는 CodeRush도 가지고있다).런타임 중에 해결되는 유형의 메소드에 단일 단계로 들어가는 방법?

나는 방법 2에 단 하나 단계가 할 수없고 나는 방법 2의 실시에 갈 수 없다. 디버거는 method2로 한 단계 씩 들어가기 전에 다음 줄로 한 단계 씩 넘어갑니다. method2의 ctrl-alt-click은 "method2 구현을 찾을 수 없습니다"를 보여줍니다. Ctrl 키를 누른 채로 method2를 클릭하면 해당 인터페이스로 이동합니다.

디버깅하는 동안 method2로 침입하는 방법을 궁금합니다.

+0

Resharper 도구를 비활성화/제거한 다음 VS IDE "Step Into (F11)"를 사용하여 응용 프로그램을 디버깅 한 경우 결과는 어떻습니까? 다른 프로젝트의 두 클래스 메서드 또는 같은 프로젝트의 다른 클래스 파일 중 무엇입니까? 어떤 앱을 만들었습니까? VC++/C#? 믹스 모드 디버깅입니까? 도구 -> 옵션 -> 디버깅 아래에서 "관리/기본 호환 모드 사용"을 활성화합니까? 또한 빌드 오류가 있는지 확인하십시오. –

+0

나는 C#만을 사용하고있다. 두 가지 모드가 모두 꺼져 있습니다. 혼합 모드가 아닙니다. method2는 솔루션의 일부가 아닌 프로젝트의 클래스 파일에 있습니다. 어셈블리가 참조됩니다. –

+0

@ Tony, 두 모드를 하나씩 비활성화하면 결과는 어떨까요? 앱을 실행하는 동안 두 번째 클래스 메소드가 실제로 호출되었는지 확인 하시겠습니까? 참조 클래스에서 특정 메시지를 출력하고 출력 결과를 볼 수 있습니다. 적어도 그것이 호출되었는지 여부는 알 수 있습니다. 아마도 dll 참조 속성 "copy local = True"또는 다른 것을 설정하는 것을 잊었을 것입니다. –

답변

0

(1) 원래 문과 정확히 일치하도록 소스 파일을 선택 취소하고 TOOLS-> 옵션 -> 디버깅에서 내 코드 만 사용을 선택 취소하십시오.

(2) 참조 어셈블리 디버깅의 경우 dll 파일과 PDB 파일을 모두 참조하는 프로젝트 출력 (Bin \ debug) 경로에 복사해야합니다.

(3) 디버깅 모드에서 디버그 -> 모듈 창에이 어셈블리를 실제로로드했는지 확인하십시오.

(4) 어셈블리 참조가 설치된 프로젝트 참조를 사용하면이 문제의 범위를 좁히는 데 도움이 될 수 있습니다.