programing

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

sourcejob 2023. 5. 4. 19:52
반응형

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

좋아, 내가 가진 건:

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

어제 갑자기 '현재 중단점은 타격을 받지 않을 것입니다.이 문서에 대한 기호가 로드되지 않았습니다.' 메시지가 IDE에 표시되지만 웹 응용 프로그램에만 영향을 미치므로 Silverlight 및 Winform App을 디버그할 수 있습니다.

메시지를 삭제하기 위해 시도한 작업:

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

제 인생에서 이런 일은 두 번째입니다.지난번 임시 ASP를 삭제하여 해결했습니다.NET 파일 폴더입니다만, 이번에는 도움이 필요합니다.

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

공통 속성 --> 시작 프로젝트에서 확인합니다.

여러 시작 프로젝트 선택

디버그해야 하는 프로젝트에 대한 작업 시작을 선택합니다.

저도 같은 문제를 겪었고 구글 검색 후 이에 대한 두 가지 일반적인 솔루션을 찾았습니다.

  1. Silverlight 디버거가 에서 활성화되었는지 확인합니다.웹 프로젝트.프로젝트 속성을 열고 "웹" 탭에서 Silverlight 디버거를 선택합니다.

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

하지만 이것들어느 것도 저에게 효과가 없었습니다.그런 다음 누군가가 대신 브라우저로 IE를 사용해 보라고 언급했습니다.이것은 디버깅과 중단점이 다시 작동하도록 만들었습니다!

편집:

나중에 저는 IE9이 작동하지 않는 것에 어려움을 겪었습니다. 왜냐하면 그것은 잘못된 과정에 부착되기 때문입니다.매번 올바른 IE 프로세스에 수동으로 연결하는 대신, 깔끔한 요령을 발견했습니다.

  • 에서 생성된 페이지 중 하나를 마우스 오른쪽 버튼으로 클릭합니다.웹 프로젝트(.html 또는 .aspx)
  • 찾아보기를 클릭합니다.."
  • IE를 기본 브라우저로 설정(Visual Studio의 브라우저 선택에만 영향을 미칩니다)

이제 Visual Studio는 를 실행할 때 IE를 시작합니다.웹 프로젝트를 수행하고 올바른 프로세스에 첨부합니다.그 정도면 됐다.

이러한 특정 오류가 발생할 때마다 Visual Studio에서 어셈블리를 로드하는 폴더가 웹 응용 프로그램이 실행되는 폴더와 다르다는 것이 확인됩니다.

즉, 응용프로그램 서버가 응용프로그램을 실행하고 있습니다.

C:\dev\MyApplication\bin 

하지만 Visual Studio에서 디버깅 중입니다.

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

참고 - 다양한 이유로 대부분의 사용자가 사용하는 Dinky Standalone gizmo 대신 IIS를 응용 프로그램 호스트로 사용하여 디버깅을 수행합니다.이것은 내 대답의 유용성에 영향을 미칠 수 있습니다!

업데이트:

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

디렉터리 Visual 튜스의디예디렉버토리깅우경오디예▁((:리디토▁for렉▁directory▁the:C:\dev\MyOtherApplication는 사용자의 위)는의리입니다디가 디렉토리입니다.svc되며, ▁한 디렉토리입니다. 일반적으로 당신과 같은 디렉토리입니다.csproj프로젝트 파일.

문제는 디버그 구성에서 Properties->Build->Optimize code 확인란이 켜져 있었다는 것입니다.전원을 끄고, 다시 만들고, 디버깅이 정상적으로 작동했습니다.

PDB(PDB는 프로그램에 대한 디버깅 정보를 저장하기 위해 Microsoft에서 개발한 독점 파일 형식인 Program Database의 약자)가 최신 버전이 아니기 때문에 다음과 같은 이유가 있을 수 있습니다.

1- Bevan이 말했듯이, 당신은 다른 애플리케이션을 디버깅하고 있을지도 모릅니다!

2- 동일한 응용 프로그램의 다른 버전을 디버깅하는 중입니다.예를 들어, (재구축하지 않고) 디버깅하기 위해 현재 버전의 코드가 있는 이전에 빌드된 응용프로그램을 첨부했습니다.

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

문제가 자신의 것이 아닌지 확인하려면 VS 2008에서 동일한 애플리케이션을 디버깅해 보십시오(VS 2010의 버그일 수도 있습니다. 아직 베타 버전입니다!).

저도 같은 문제가 있어서 프로젝트를 디버깅하고 있었는데 프로젝트를 마우스 오른쪽 단추로 클릭하고 "새 디버그 인스턴스"를 선택해야 했습니다.저는 이것을 한 번만 하면 되었고, 그 후에는 정상적으로 작동했습니다.

이 오류는 때때로 발생하며 항상 관련 어셈블리의 프로젝트 설정으로 추적할 수 있습니다.코드가 중단점을 준수하지 못하거나 중단점을 설정할 때까지 "기다릴" 필요가 없습니다. 어떤 어셈블리에 기호가 로드되었는지 알기 위해서입니다.

프로젝트를 디버그 모드로 실행하면 아래와 같이 로드된 어셈블리의 기호가 출력 창에 나열됩니다(새 탭에서 이미지를 열어야 할 수 있음).t

출력 창

그래서 이 경우에는 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에 대한 유효한 기호 파일로 선택되지 않을 수 있기 때문입니다.

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

(이 경우에는 릴리스 모드에 있지만 이 방법이 적용됨)

프로젝트 속성으로 이동 -> 빌드 -> 고급...

"Output" 섹션의 "Debug Info" 드롭다운에서 "full"을 선택합니다.

프로그램을 릴리스 모드가 아닌 DEBUG 모드로 실행 중인지 확인합니다.

디버그 - > 프로세스에 첨부 ->
다음 코드 유형 디버그: 옵션 ->를 선택합니다.
관리되는 v3.5, v3.0, v2.0 또는 관리되는 v4.5, v4.0여기에 이미지 설명 입력 선택합니다.

Silverlight 응용 프로그램 배포에 따라 이 문제를 방금 해결했습니다.(이 답변은 일부 다른 답변과 중복되지만 좀 더 자세히 설명해 보겠습니다.)

문제는 Silverlight 응용 프로그램이 빌드/시작 시 웹 응용 프로그램에 제대로 배포되지 않는 것일 가능성이 높습니다.이것은 참조 문제입니다. 이해하기는 간단하지만 처음 접했을 때는 분명하지 않습니다.

다른 프로젝트 참조와 마찬가지로 참조된 프로젝트의 출력을 참조 프로젝트의 bin 폴더에 복사하여 디버그해야 합니다.클래스 라이브러리의 경우 마우스 오른쪽 단추를 클릭하고 '참조 추가...'를 선택하면 이 문제가 발생합니다.Silverlight의 경우 프로젝트 속성을 통해 참조를 추가해야 합니다.

  • 프로젝트를 마우스 오른쪽 단추로 클릭하고 '속성'을 선택합니다.
  • 왼쪽의 'Silverlight Applications' 탭을 선택합니다.
  • 추가...' 버튼을 누르고 대화 상자에서 Silverlight 프로젝트를 선택합니다.

호스팅 웹 프로그램에 되고, Silverlight 응용 프로그램이 Silverlight 응용 프로그램에서 Silverlight 응용 프로그램을 할 수 있습니다.xap파일이 빌드 또는 배포 시 웹 앱에 복사됩니다.즉, 현재 Silverlight 앱과 해당 디버그 파일이 디버깅 중인 응용 프로그램 내부에 있으므로 코드를 단계별로 살펴볼 수 있습니다.

웹 프로젝트를 디버깅하는 경우 debug="true" 특성이 web.config 파일에 설정되어 있는지 확인합니다.

<system.web>
    <compilation debug="true"   .../>

Windows 7(윈도우 7)에서도 동일한 문제가 발생하여 DLL 정리, 모듈 목록 조사, "내 코드만 꺼짐" 등 모든 작업을 시도했습니다.

Visual Studio를 "관리자"로 실행한 후 문제가 해결되었습니다.솔직히.Microsoft가 "관리자 권한"으로 실행되지 않는다고 경고할 수 없는 이유는 무엇입니까?그러면 몇 시간 동안 일을 덜 수 있을 것입니다.

문제는 프로젝트 설정의 빌드 탭에서 "코드 최적화"를 활성화했다는 것입니다.

같은 문제가 있었습니다.

어떤 이유에서인지 DLL 중 하나가 GAC에 등록되어 있어서 항상 코드와 다른 버전을 가지고 있었습니다.

GAC에서 제거하자 문제가 해결되었습니다.

Visual Studio 2010이 아닌 Visual Studio 2008을 사용하는 판독치의 경우 이 오류가 발생합니다.위의 답변들이 이 상황에서 저에게 도움이 되지 않아 경험담을 공유합니다.

Visual Studio 2008에서 ASP를 사용하지 않고 w3wp.exe 프로세스에 연결하여 IIS 웹 응용 프로그램을 디버깅하는 경우디버깅용 NET Development Server(디버깅부터 시작), 다음과 같은 문제가 있을 수 있습니다.

Visual Studio에서 최신이 아닌 IIS 프로세스의 dll에서 심볼 파일(디버깅 중에 사용된 파일)을 계속 참조하고 있을 수 있습니다.이 기호 파일은 에 의해 다시 생성되었습니다.NET 소스 코드를 다시 컴파일하지만 IIS 프로세스가 여전히 이전 기호 파일을 참조하고 있습니다.

수정 방법:

Visual Studio에서 디버깅을 중지하고 웹 응용 프로그램을 다시 시작한 다음 프로세스에 다시 연결하십시오.그런 다음 중단점이 노란색(이 오류가 발생하면)에서 빨간색으로 다시 바뀌어야 합니다.

========================

추가 시도 사항(오늘 발견된 새로운 상황):

아래 링크의 각 글머리 기호를 한 번에 하나씩 수행하되, 아래의 단계를 시도할 때마다 반복합니다.

http://carnotaurus.philipcarney.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same

Studio1에서아이콘을 ). Visual Studio에서 디버깅을 중지합니다(빨간색 사각형 아이콘 누름).
2.) 클린 솔루션
구축3) 솔루션 구축
4.) [여기에 글머리 기호 지침 삽입]
>)5.) 도구 > 프로세스에 첨부(또는 디버깅으로 시작)
합니다. 6.) 연결된프로시을코적실록다행니합도중되드가.

6 설명:

nunit에 부착하는 경우.exe, 그런 다음 NU 유닛을 열고 중단점이 적중되도록 테스트를 실행합니다.

w3wp.exe(IIS 사이트)에 첨부할 경우 브라우저에서 사이트를 열고 중단점을 표시할 페이지로 이동합니다.

편집:

오늘 저는 당신이 시작 프로젝트로 설정되지 않은 프로젝트에서 디버깅을 시도하면 이것이 표시된다는 것을 알게 되었습니다.w3wp.exe 프로세스에 첨부하면 시작 프로젝트로 설정된 프로젝트에 대한 디버깅이 실행되는 것으로 간주됩니다.해결하려면 웹 응용프로그램 프로젝트를 마우스 오른쪽 단추로 누르고 "시작 프로젝트로 설정"을 선택하십시오.그런 다음 프로세스에 다시 연결해 보십시오.

시나리오는 다음과 같습니다. 특정 프로젝트가 시작 프로젝트입니다(예: 주 방법).해당 프로젝트가 솔루션의 다른 프로젝트를 참조하고 있습니다.다른 프로젝트의 중단점이 맞지 않습니다.

빠른 솔루션: 솔루션을 구축할 때 시작 프로젝트의 빌드 출력 경로(일반적으로 bin\debug)를 확인합니다.참조 중인 프로젝트의 DLL 및 PDB 파일을 확인합니다.마지막으로 수정한 날짜가 마지막으로 솔루션을 구축한 날짜인지 확인합니다.그렇지 않은 경우 각 프로젝트의 빌드 출력 경로에서 시작 프로젝트로 복사합니다. 출력 경로를 빌드합니다.예:

프로젝트 A에는 메인이 있습니다.그것은 프로젝트 B를 참조합니다.프로젝트 B에서 중단점이 발생하지 않습니다.DLL 및 PDB 파일을 프로젝트 B의 빌드 출력 경로에서 프로젝트 A의 빌드 출력 경로로 복사합니다.그런 다음 솔루션을 실행합니다.이제 중단점이 표시됩니다.

이제 당신은 왜 A 프로젝트가 B 프로젝트의 DLL과 PDB 파일을 통해 복사하지 않는지 알아내야 합니다.여기서는 대부분의 시나리오를 다룹니다.건드리지 않은 시나리오 중 하나는 프로젝트와 솔루션이 TFS에 올바르게 바인딩되어 있는지 확인하는 것입니다.일부 프로젝트는 바인딩되었지만 일부 프로젝트는 올바르게 바인딩되지 않았습니다.그것이 저에게 문제를 일으켰습니다.이 문제를 해결한 후에는 문제가 해결되어 더 이상 DLL 및 PDB 파일을 복사할 필요가 없었습니다.

에서 이 .config를 해야 했습니다.debug="true"

  <system.web>
    <compilation targetFramework="4.0" debug="true">

이 솔루션을 찾는 데 도움이 된 것은 디버깅하는 동안 모듈 창을 보고 ASP를 위해 이를 확인한 것입니다.로드된 NET DLL: 이진이 디버그 정보로 빌드되지 않았습니다.

제 경우에도 동일한 문제에 대한 해결책은 다음과 같은 단계의 조합이었습니다.

  1. 솔루션 --> 속성 여러 시작 프로젝트 선택 디버그해야 할 프로젝트에 대한 작업 시작을 선택합니다.
  2. 서비스 참조에서 서비스를 제거하고 솔루션을 정리했습니다.
  3. 서비스 프로젝트 재구성
  4. 서비스 참조에 다시 추가됨
  5. 용액을 정리하고 다시 만듭니다.

저도 같은 문제를 겪었지만 2013년에 웹 앱을 사용했습니다.솔루션의 빌드 구성을 업데이트하는 것이 정답이었습니다.

  1. 솔루션을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
  2. 디버그 구성을 선택
  3. 트라이벳의 "구성 속성"에서 "구성"을 선택합니다.
  4. 디버그할 각 프로젝트의 "빌드" 상자를 선택합니다.

제가 이 일을 하자 모든 중단점이 작동하기 시작했습니다.

좋아요. 갑니다.

("실버라이트 앱"에서: 서버 프로젝트 "속성"에서 "웹"에서 실버라이트가 확인되었는지 먼저 확인하십시오 - 해결되지 않았다면 아래에 있는 것을 시도하십시오.)

처음 실행할 때: devenv.exe /ResetSettings 및 1: debug tag 2: "debugging"에서 옵션 및 설정 3: "debugging"을 클릭하고 "general"에서 "enable.net framework source steping"을 찾습니다. 4: 확인란을 선택합니다. 5: 이제 모든 기호가 다운로드되고 재구성됩니다. :)

위에서 설명한 후에도 이 문제가 다시 발생하면 기호가 있는 폴더를 지웁니다.

1: 상단 메뉴에서 디버그 태그 2: 옵션 및 설정 3: "디버깅"에서 "기호" 아래의 "빈 기호 캐시" 버튼을 찾아 클릭합니다.

브라우저에서 웹 응용 프로그램 URL을 연 다음 VS에서 엽니다.Net IDE 사용 도구-->프로세스에 첨부

그런 다음 aspnet_wp.exe에 연결합니다.

디버거가 작동을 시작합니다.

레지스트리에서 .dll의 모든 인스턴스를 수동으로 제거하고 로컬 드라이브에서 .dll의 모든 인스턴스를 제거해야 했습니다.앱을 제거/재설치하고 중단점을 표시하고 있습니다!이것을 하느라 한나절을 허비했습니다 :(

이름을 바꾸려고 했습니다..pdb줄을 지어 들어가다obj\debug폴더를 만들고 치료 및 재구축을 수행했습니다.
새로운 데이터를 생성했습니다..pdb파일을 작성하면 중단점을 정확히 맞출 수 있었습니다.

Visual Studio에서 디버깅 작업을 수행하는 데 많은 시간을 허비했습니다.

뉴튼소프트 3가지 버전을 가지고 있었습니다.Json(7개의 C# 프로젝트에 걸쳐).솔루션은 컴파일되지만 디버깅할 수 없습니다.

Nuget의 Package Manager 콘솔에서 다음을 실행하여 문제를 해결했습니다.

PM > 업데이트 - Newtonsoft 패키지.

WPF 앱의 경우 애플리케이션 폴더를 삭제하고 소스 제어에서 "최신 정보 가져오기"를 다시 수행한 후 다시 빌드했습니다.이제 모든 중단점이 잘 작동합니다.

Silverlight Application Project를 시작 프로젝트로 설정해보세요: project -> 'Set As Startup project'를 마우스 오른쪽 버튼으로 클릭합니다.그런 다음 F5를 눌러 중단점을 잡을 수 있는지 확인합니다.

Silverlight 응용 프로그램을 변경할 때마다 브라우저에서 검색/템플릿 데이터 삭제 시도

또 다른 유용한 일화는

프로젝트 중 하나가 릴리스 출력 폴더의 파일 참조를 사용할 때 이 문제가 발생했습니다.빌드 결과가 Goods 폴더에 저장되었을 때 이 릴리스 dll은 Debug dll을 덮어쓰고 있었습니다.

해결책은 csproj 파일에서 내 참조의 HintPath를 확인하는 것이었습니다.

<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>

그리고 아닌

<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>

클라이언트가 각 애플리케이션 솔루션에 대해 대부분의 공유 어셈블리를 "References" 폴더에 복사한 후 솔루션에 "솔루션 항목" 및 솔루션 의 "Project"로 추가할 때 바로 이러한 문제가 발생했습니다.

어셈블리에 대한 참조 설정에 올바른 전체 경로가 지정되었음에도 불구하고 일부는 디버깅할 수 있었지만 일부는 디버깅할 수 없었습니다.

이 예측할 수 없는 행동은 나를 거의 미치게 했습니다 :)

소스 코드가 있는 프로젝트가 있는 "References" 폴더에서 모든 어셈블리를 제거하고 공유 어셈블리에 대한 버전 정보를 매우 잘 추적함으로써 이 문제를 해결했습니다.

제 문제가 어리석다는 점을 제외하고는 비슷한 문제가 있었습니다. 2개의 다른 포트에서 실행되는 내장 웹 서버 인스턴스가 2개 있었고 고정 포트를 가리키는 프로젝트 -> 속성 -> 웹 -> "시작 URL"이 있었지만 웹 앱이 실제로 해당 포트에서 실행되지 않았습니다.그래서 제 브라우저는 1539를 참조하는 "시작 URL"로 리디렉션되었지만 코드/디버그 인스턴스는 포트 50803에서 실행되고 있었습니다.

고정 포트에서 실행되도록 내장 웹 서버를 변경하고 해당 포트도 사용하도록 "시작 URL"을 조정했습니다. project -> properties -> web -> "Servers" 섹션 -> "Visual Studio Development Server 사용" -> 특정 포트

언급URL : https://stackoverflow.com/questions/2301216/the-breakpoint-will-not-currently-be-hit-no-symbols-have-been-loaded-for-this-d

반응형