2015-01-09 4 views
0

2 개의 프로젝트 A와 B가 VS에서 C#으로 작성되었습니다. A는 Host applocation으로 처리되고 B는 dll입니다. A는 런타임에 Assembly.LoadFrom 및 Call B의 메서드로 B를로드합니다. 내 질문은 B가 A의 DLL을 실행하고있을 때 B를 어떻게 디버깅 할 수 있는가입니다. 두 프로젝트의 소스 코드가 있습니다. 하지만 B를 처리 할 때 A를 처리합니다. VS는 B.dll이 A라는 다른 프로세스에 의해 사용되고 있다고 말했습니다. 그래서 B의 기호가로드되어 있지 않기 때문에 B의 코드의 중단 점을 설정할 수 없습니다. B가 A에 의해 사용될 때 B를 어떻게 디버깅 할 수 있습니까? 감사!.net 어셈블리를 다른 프로세스에서 사용할 때 디버깅하는 방법

+0

B 프로젝트를 엽니 다. 프로젝트 + 속성, 디버그 탭. "외부 프로그램 시작"을 선택하고 A.exe를 선택하십시오. 중단 점을 설정하고 F5를 누릅니다. –

답변

1

먼저 실행 프로젝트를 시작하십시오. 그런 다음 프로세스에 첨부하여 dll 프로젝트를 exe 프로젝트에 첨부하십시오. 옵션을 첨부하십시오. > 옵션을 프로세스에 연결 선택했다 -

은 Visual Studio에서, 당신은에 의해, 디버그 메뉴에서

클릭이 작업을 수행 할 수 있습니다.

실행중인 모든 프로세스 목록을보고 적절한 프로세스를 선택하면 dll 코드를 디버깅 할 수 있습니다.

+0

안녕하세요, 귀하의 회신을 보내 주셔서, 나는 당신의 방법을 사용하여 B를 디버깅 할 수 있지만, B가 A에 의해 사용되는 경우, B는 디버깅 할 수 없습니다. – steven

+0

@steven 한 번에 하나의 디버거만으로 프로세스가 연결됩니다. 솔루션에 dll 프로젝트를 추가하는 더 좋은 방법이지만 처음에는 나머지 프로젝트 구조가 엉망이되어서는 안됩니다. –

+0

사용자 작업을 통해 dll 프로젝트를로드하고 싶습니다. Unity3D와 마찬가지로 dll 프로젝트를 열고 dll에서 스크립트를 실행하고 런타임에 디버거를 통해 스크립트를 디버그 해 봅니다. – steven