PDB 파일이란 무엇이며 솔루션을 다시 빌드 할 때 릴리스 폴더에서 PDB 파일을 어떻게 제외시킬 수 있습니까?
PDB 파일이란 무엇이며 솔루션을 다시 빌드 할 때 릴리스 폴더에서 PDB 파일을 어떻게 제외시킬 수 있습니까?
답변:
PDB 파일에는 디버거가 작업 할 정보가 들어 있습니다. 릴리스 빌드에는 디버그 빌드보다 정보가 적습니다. 그러나 전혀 생성하지 않으려면 프로젝트의 빌드 속성으로 이동하여 릴리스 구성을 선택하고 "고급 ..."을 클릭 한 다음 "디버그 정보"에서 "없음"을 선택하십시오.
원래 " 고객 컴퓨터에 PDB 파일을 배포해야합니까? "라는 질문을 받았습니다 . " 게시물을 읽은 후 파일을 제외하기로 결정했습니다.
오늘까지는 Exception.StackTrace
예외를 해결하는 데 필요한 파일 및 줄 번호 정보가없는 메시지 상자에 왜 누락 되었는지 알아 내려고 시도 할 때까지 모든 것이 제대로 작동했습니다 . 이 게시물을 다시 읽고 중요한 정보를 발견했습니다 .PDB는 앱을 실행하는 데 필요하지 않지만 파일과 줄 번호가 StackTrace
문자열 에 있어야 합니다. PDB 파일을 실행 가능 폴더에 포함 시켰으며 이제는 모두 정상입니다.
accepted answer
여기서 언급하지 않은 것을 명심해야 할 매우 중요한 부분 입니다.
PDB 는 P rogram D ata B ase 의 약자입니다 . 이름에서 알 수 있듯이 프로그램을 디버그 모드로 실행하는 데 필요한 정보를 유지 관리하는 저장소 (데이터베이스와 같은 영구 저장소)입니다. 여기에는 코드를 디버깅하는 동안 (Visual Studio에서) 디버거가 Visual Studio에서 중단 될 것으로 예상되는 지점을 삽입 한 지점과 같은 중요한 관련 정보가 많이 포함되어 있습니다.
*.pdb
디버그 폴더에서 파일 을 제거하면 Visual Studio가 중단 점에 여러 번 실패하는 이유 입니다. Visual Studio 디버거는 파일을 사용하여 스택 추적에서 예외가 발생한 정확한 줄 번호의 코드 파일을 알려줄 수도 *.pdb
있습니다. 따라서 효과적으로 pdb 파일은 프로그램을 디버깅하는 동안 개발자에게 큰 도움이됩니다.
일반적으로 *.pdb
파일 생성을 제외하지 않는 것이 좋습니다 . 프로덕션 릴리스 관점에서해야 할 일은 pdb 파일을 작성하지만 제품 설치 프로그램의 고객 사이트에는 제공하지 않는 것입니다. 생성 된 모든 PDB 파일을 필요한 경우 나중에 사용 / 참조 할 수있는 기호 서버에 보존하십시오. 특히 프로세스 충돌과 같은 문제를 디버깅하는 경우에 적합합니다. 크래시 덤프 파일 분석을 시작하고 *.pdb
빌드 프로세스 중에 만들어진 원본 파일이 유지되지 않으면 Visual Studio에서 크래시를 일으키는 정확한 코드 줄을 만들 수 없습니다 .
여전히 *.pdb
모든 릴리스 에서 파일 생성을 비활성화 하려면 프로젝트 속성-> 빌드 탭-> Advanced버튼 클릭-> none
"디버그 정보"드롭 다운 상자에서 선택-> OK아래 스냅 샷과 같이 누르 십시오. .
참고 :이 설정은 "디버그"및 "릴리스"빌드 구성에 대해 별도로 수행해야합니다.
PDB 파일은 디버거에 의해 사용되는 정보가 포함되어 있습니다. 응용 프로그램을 실행할 필요가 없으며 릴리스 된 버전에 포함시킬 필요가 없습니다.
Visual Studio에서 pdb 파일이 생성되지 않도록 설정할 수 있습니다. 명령 행 또는 스크립트에서 빌드하는 경우 /Debug
스위치 를 생략하십시오 .
프로그램 디버그 데이터베이스 파일 (pdb)은 디버깅 정보를 저장하기위한 Microsoft의 파일 형식입니다.
Visual Studio 또는 명령 프롬프트를 사용하여 프로젝트를 빌드하면 컴파일러에서 이러한 심볼 파일을 만듭니다.
Microsoft 문서 확인