2014-11-15 8 views
0

모든 구성 요소가 클라이언트 (winforms)와 서버 (WCF Windows 서비스에서 호스팅되는) 모두에서 GAC에 배포됩니다) 기계. 우리는 VIsual Studio 2013/.Net 4.5.1을 사용합니다.PDB 및 .NET Framework 디버깅 DLL이 GAC에있을 때 (in Production)

실수로 알고있는 곳에 어디서나 PDB를 배포하거나 저장하지 않았습니다. pdbonly와

  • 생성 PDB의는 우리의 MSBuild 과정에서 진정한 최적화하고, 안전하게 확실하지를 저장 아직 우리가 경우 : 우리는 지금이 수정 조사하고 있습니다, 그래서 우리의 예외 추적 및 디버깅 목적을 개선하기 위해 우리는 기호 서버를 사용하거나 바이너리와 함께 저장합니다.

  • GAC (C : \ Windows \ Microsoft.NET \ assembly \ GAC_32 ...)의 프로덕션에 DLL과 pdbs를 배포하면 스택 추적에 줄 번호가 표시됩니다. 최적화가 대개 행 번호를 변경하기 때문에 이것이 가치가 있는지 확실하지 않습니다. 누구든지이 점에 대해 의견이 있으신가요?하지만 지금은 매우 긴 방법이있어서 줄 번호에 대한 단서가 없으면 시간이 많이 걸립니다 :-)

  • 또한 일부 powershell 스크립트를 배포하여 비활성화하려면 INI 파일을 생성하십시오 필요한 경우 here과 같이 최적화를 활성화하십시오. 따라서 클라이언트가 오류를 발견하면 최적화를 해제하고 필요한 경우 올바른 행 번호를 얻을 수 있습니다.

    I : 우리는 그들이 어려운 예외가 procdump -e 1 XXXX

내 질문과 개발에 재현 얻을 때마다 미니 덤프를 생성하는 고객을 지시 ProcDump를 사용하여이 외에도

  • DLL이 (GAC에서) 보이는 폴더가 올바르게 보이지 않는 PDB와 INI 파일을 복사하는 것이 좋습니다. 그래서 ... 우리는 어디에서 이것을 넣을 수 있습니까? PDB와 INI 파일이 생산 단계에서 선택되도록 솔루션을 찾을 수 없었습니다.

    MS 포럼에도 게시했습니다. 누군가 대답하면 상호 참조를 추가 할 예정이지만 몇 시간 동안 검색 중이지만 아무 정보도 찾지 못했습니다 ...!

  • +1

    이 파일은 DLL을 사용하는 EXE와 같은 디렉토리에 속한다. –

    +0

    음, 정말로시겠습니까? 나는 방금 시도했지만 효과가 없었습니다. pdbs가 gac 안의 같은 폴더에있을 때에 만 작동합니다. 어쩌면 내가 뭔가 잘못하고있는 것일 수도 있습니다 ... – nadasurf

    +0

    [디버깅 최적화 코드] (http://blogs.msdn.com/b/visualstudioalm/archive/2015/08/14/debugging-optimized-code.aspx) MSDN 문서보기 . –

    답변