모든 구성 요소가 클라이언트 (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 포럼에도 게시했습니다. 누군가 대답하면 상호 참조를 추가 할 예정이지만 몇 시간 동안 검색 중이지만 아무 정보도 찾지 못했습니다 ...!
이 파일은 DLL을 사용하는 EXE와 같은 디렉토리에 속한다. –
음, 정말로시겠습니까? 나는 방금 시도했지만 효과가 없었습니다. pdbs가 gac 안의 같은 폴더에있을 때에 만 작동합니다. 어쩌면 내가 뭔가 잘못하고있는 것일 수도 있습니다 ... – nadasurf
[디버깅 최적화 코드] (http://blogs.msdn.com/b/visualstudioalm/archive/2015/08/14/debugging-optimized-code.aspx) MSDN 문서보기 . –