2016-10-19 4 views
1

(이전에) 작동중인 .NET COM 프로젝트 및 Excel 2013에서 작동하는 다양한 문제를 컴퓨터에서 확인하려는 시도의 일환으로 간단한 테스트 C# RTDServer 클래스를 Visual Studio 2013 테스트 RTD 서버 프로젝트를 만들면 내 Excel 2013이 64 비트 버전이고 모든 Excel COM 구성 요소가이 Excel 버전에서 작동하도록 대상 플랫폼을 x64로 설정해야한다는 것을 알게되었습니다.Visual Studio 2013에서 C# RTD Server 프로젝트를 디버그 할 수 없습니다.

이 테스트 RTD 구성 요소는 잘 작동하지만 (x64로 컴파일 됨) Visual Studio를 사용하여 코드로 디버그 할 수 없습니다. 이전 프로젝트에서 작업 한 것은 시작 응용 프로그램을 Excel.exe로 설정 한 다음 예를 들어 ServerStart(IRTDUpdateEvent CallbackObject) 메서드에서 항상 중단 점에 도달 할 수있었습니다.

그러나 VS 2013 프로젝트를 시도 할 때 중단 점에 절대로 도달하지 않습니다. 실행되는 동안 새 중단 점을 설정하면 메시지가 표시됩니다.

중단 점은 현재 적중되지 않습니다. 이 문서에는 심볼이로드되지 않았습니다 ( ).

나는이 문제에 대한 해결책을 많이 찾았지만 아직 효과가없는 것은 발견하지 못했습니다.

+1

디버깅 할 때 모듈 창을 확인하고 exe가 올바른 경로로 DLL을로드하는지 확인하십시오. – Matt

+0

@Matt : 디버거가 실행 중일 때 모듈 창은 완전히 비어 있습니다. (디버거를 시작하는 방법은 * 재생 * 버튼을 누르는 것입니다.) 그래서 디버거가 Excel을 시작하고 RTD 링크가있는 워크 시트를로드하지만 DLL을 전혀로드하지 않는 것 같습니다. –

+0

@Matt : 한 번 더 요점 - DLL이 COM을 통해 액세스 중이기 때문에 디버거가 DLL을 Excel 프로세스에 연결하지 않은 것으로 보입니다. (하지만 디버거를 중지하면 예상대로 Excel이 종료됩니다.) –

답변

0

이 문제는 Excel 2003을 실행할 때 (이 앱을 처음 개발했을 때) 사용해야했던 Excel 용 앱 구성 때문에 발생했습니다.

<startup> 

<supportedRuntime version="v2.0.50727"/> 

<supportedRuntime version="v1.1.4322"/> 

<requiredRuntime version="v2.0.50727"/> 

</startup> 

그러나이 RTD 서버가 .NET 4.5을 사용했다 :

는 config

에는 다음이 포함되어 있습니다. Office 디렉터리에서 구성 파일을 삭제하면 디버거에서 작동하기 시작했습니다.