[C#] 중단 점은 현재 적중되지 않습니다. Silverlight 응용 프로그램에서이 문서에 대한 기호가로드되지 않았습니다

좋아, 내가 가진 것 :

Visual Studio 2010 RC (W7 x64)는 새로운 프로젝트 유형의 Silverlight 응용 프로그램을 시작했습니다. ASP.NET 웹 응용 프로그램 프로젝트에서 Silverlight 응용 프로그램 호스팅 Silverlight 버전 3.0. LinqToSQL 클래스, WCF 서비스, Winform Tester 응용 프로그램 (프로젝트의 솔루션) 및 몇 개의 클래스 (솔루션의 프로젝트)가 추가되었습니다.

어제 갑자기 나는 ‘브레이크 포인트가 현재 맞지 않을 것입니다. 이 문서에 대한 기호가로드되지 않았습니다. ‘ 메시지는 IDE에 표시되지만 웹 응용 프로그램에만 영향을 미칩니다. Silverlight 및 Winform App을 디버깅 할 수 있습니다.

내가 메시지를 없애려고 시도한 것 :

  • Visual Studio 설정 재설정
  • 모든 \ Temporary ASP.NET 파일 폴더의 모든 파일을 제거했습니다 (32 비트 / 64 비트 및 프레임 워크 2.0 및 4.0마다 하나씩).
  • Visual Studio 통합 웹 서버를 사용하여 디버그하려고했습니다. 일반적으로 IIS를 사용합니다. 솔루션의 프로젝트 출력에서 ​​모든 프로젝트 폴더의 모든 obj 및 bin 폴더를 삭제했습니다.
  • 새로운 솔루션을 만들고이 새로운 솔루션에 모든 프로젝트를 추가했습니다
  • 솔루션 suo 파일을 삭제했습니다
  • VS 설치 문제인지 테스트하기 위해 새로운 ASP.NET 웹 응용 프로그램을 만들었습니다. =>이 새로운 프로젝트 / 솔루션을 디버깅 할 수 있습니다
  • 컴퓨터를 여러 번 재부팅
  • vs.net 설치 복구
  • IISReset을 했어
  • IIS에서 웹앱 제거
  • 웹 응용 프로그램의 프로젝트 속성에서 가상 디렉터리 만들기 단추를 사용하여 IIS에서 새 웹 응용 프로그램을 만들었습니다.
  • 모든 프로젝트의 프레임 워크 버전을 3.5에서 4.0으로 변경
  • 두 번째 컴퓨터에서 솔루션을 열었습니다 => 동일한 동작
  • 버그 / 유사한 문제에 대해 Microsoft Connect 크롤링
  • SPENT 7 시간

그래서 이것은 내 인생에서 두 번째로 발생합니다. 지난번에 임시 ASP.NET 파일 폴더를 삭제하여 해결했지만 이번에는 도움이 필요합니다.



답변

솔루션-> 속성을 ​​마우스 오른쪽 버튼으로 클릭하십시오.

공통 속성-> 시작 프로젝트에서 확인하십시오.

여러 개의 시작 프로젝트를 선택하십시오

디버그해야하는 프로젝트에서 조치 시작을 선택하십시오.


답변

나는 같은 문제가 있었고 인터넷 검색 후 이에 대한 두 가지 일반적인 해결책을 찾았습니다.

  1. .Web 프로젝트에서 Silverlight 디버거가 활성화되어 있는지 확인하십시오. 프로젝트 속성을 열고 “웹”탭에서 Silverlight 디버거를 선택하십시오.

  2. Visual Studio를 다시 시작하고 모든 bin 및 obj 폴더를 삭제하십시오.

그러나 이것들 중 어느 것도 나를 위해 일하지 않았습니다 . 그런 다음 누군가 브라우저 대신 IE를 사용해보십시오. 이로 인해 디버깅 및 중단 점이 다시 작동했습니다!

편집하다:

나중에 IE9가 작동하지 않는 데 어려움을 겪었습니다. 잘못된 프로세스에 연결되어 있기 때문입니다. 매번 올바른 IE 프로세스에 수동으로 연결하는 대신 깔끔한 트릭을 발견했습니다 .

  • .Web 프로젝트 (.html 또는 .aspx)에서 생성 된 페이지 중 하나를 마우스 오른쪽 단추로 클릭하십시오.
  • “찾아보기 …”를 클릭하십시오
  • IE를 기본 브라우저로 설정 (Visual Studio의 브라우저 선택에만 영향을 미침)

이제 Visual Studio는 .Web 프로젝트를 실행할 때 IE를 시작하고 올바른 프로세스에 연결합니다. 그렇게해야합니다.


답변

이 특정 오류가 발생하면 Visual Studio에서 어셈블리를로드하는 폴더가 웹 응용 프로그램이 실행되는 폴더와 다른 것으로 나타났습니다.

즉, 응용 프로그램 서버가 응용 프로그램을

C:\dev\MyApplication\bin 

하지만 Visual Studio는

C:\dev\MyOtherApplication\bin (or something along those lines, anyway).

참고-여러 가지 이유로, 대부분의 사람들이 사용하는 dinky standalone 기즈모 대신 IIS를 응용 프로그램 호스트로 사용하여 디버깅을 수행합니다. 이것은 내 대답의 유용성에 영향을 줄 수 있습니다!

업데이트 :

IIS의 경우 응용 프로그램 서버 디렉토리 (예 : C:\dev\MyApplication위)는 웹 응용 프로그램에 대해 구성된 실제 디렉토리 입니다. 이는 응용 프로그램의 기본 설정을 변경하여 제어 할 수 있습니다.

Visual Studio의 경우 디버깅 디렉토리 ( C:\dev\MyOtherApplication위)는 svc파일 이있는 디렉토리 이며 일반적으로 csproj프로젝트 파일 과 동일한 디렉토리 입니다.


답변

문제는 디버그 구성에서 속성-> 빌드-> 코드 최적화 확인란이 설정되어 있다는 것입니다. 전원을 끄고 다시 빌드하고 디버깅하면 정상적으로 작동했습니다.


답변

당신이 직면 한 이유는 PDB ( “PDB는 프로그램 데이터베이스, 프로그램에 대한 디버깅 정보를 저장하기위한 독점 파일 형식 (Microsoft에서 개발))를 의미하지 않기 때문입니다. 이는 몇 가지 이유 때문일 수 있습니다 :

1- Bevan이 말했듯이 다른 응용 프로그램을 디버깅 중일 수 있습니다!

2- 같은 응용 프로그램의 다른 버전을 디버깅하고 있습니다. 예를 들어, 이전에 빌드 된 애플리케이션을 빌드하지 않고 디버깅하기 위해 현재 버전의 코드를 첨부했습니다.

솔루션을 청소 또는 재 구축하면 이러한 문제가 해결됩니다.

문제가 귀하의 것이 아닌지 확인하려면 VS 2008을 사용하여 동일한 응용 프로그램을 디버깅하십시오 (VS 2010의 버그 일 수 있습니다. 아직 베타 버전입니다!).


답변

나는 같은 문제가 있었고 프로젝트를 디버깅하고 있었고 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 “새 디버그 인스턴스”를 선택해야했다. 나는이 작업을 한 번만 수행 한 다음 정상적으로 작동했습니다.


답변

이 오류는 때때로 발생하고 나에게도 항상 발생하며 관련 어셈블리에 대한 프로젝트 설정을 항상 추적 할 수 있습니다. 코드가 중단 점을 준수하지 않거나 중단 점을 설정할 때까지 어떤 어셈블리에 심볼이로드되었는지 알기 위해 “대기”할 필요는 없습니다.

디버그 모드에서 프로젝트를 실행하면 출력 창에 다음과 같이 심볼이로드 된 어셈블리가 표시됩니다 (새 탭에서 이미지를 열어야 할 수도 있음).

출력 창

따라서이 경우 BASD.Core.Data.dll에는 심볼이로드되지 않습니다. 그런 다음이 어셈블리의 프로젝트 설정을 심볼로드를 관리 한 다른 어셈블리의 프로젝트 설정과 비교하여 심볼을로드하는 이유와로드하지 않는 이유를 알아낼 수 있습니다.

“나를 위해”그러나 “매번”이 발생하면 디버그 정보가 생성되지 않기 때문입니다. 그래서 (C #) 프로젝트에서 프로젝트 속성> 빌드> 고급을 엽니 다.

따라서 Basd.Core.Data.dll 위의 기호, 즉 고급 빌드 설정은 다음과 같습니다.

pdboff

Basd.Core.Configuration.dll 즉, 중단 점을 설정하고 중단 할 수있는 어셈블리의 설정은 다음과 같습니다.

pdbon

그래서 첫 번째 프로젝트가 아닌 후자의 프로젝트에서 디버그 정보를 출력하므로 Basd.Core.Configuration.dll의 중단 점에 도달 할 수 있습니다.

또한 주어진 .dll에 대한 프로젝트의 bin 폴더에 .pdb 파일을 가지고있는 것만으로는 충분하지 않습니다. 시간이 오래되어 Visual Studio에서 .dll의 유효한 기호 파일로 선택하지 않았기 때문입니다. 당신은 단계적으로 노력하고 있습니다.

또한 빌드 구성을 변경하면 빌드 정보 설정과 기호를 가져 오는 위치가 변경 될 수 있습니다.

(이 경우 릴리스 모드에 있지만 방법이 여전히 적용됨을 알고 있습니다)