C # 릴리스 버전에는 여전히 .pdb 파일이 있습니다.
C #으로 작성된 애플리케이션의 릴리스 버전을 배포하고 싶습니다.
Release
구성을 사용하여 빌드 할 때 .pdb
파일이 생성되는 것을 볼 수 있습니다. 즉, 내 애플리케이션을 여전히 디버깅 할 수 있습니다. 이것은 또한 일부 디버그 정보가 내 코드 어딘가에 존재하여 약간 느려짐을 의미합니다.
이것이 사실이라면 바이너리에서 생성 된 디버그 정보를 어떻게 완전히 억제 할 수 있습니까? 석방 이유도 알고 .pdb
계십니까? Release
구성은 한 Optimize code
체크 만 TRACE
상수가 아닌 정의된다 DEBUG
.
도와 주셔서 감사합니다.
pdb 파일 생성을 비활성화 하려면 탭 하단에 "Advanced build settings"
있는 "Advanced..."
버튼 " 을 클릭 한 후 프로젝트 속성에서 사용할 수 있는 대화 상자 를 사용해야합니다 Build
.
릴리스 빌드 구성 Output - Debug info:
에 None
대해로 설정 하면 pdb 파일이 생성되지 않습니다.
기본값은 릴리스 빌드 용 PDB도 생성하는 것입니다. 이는 기능이며 비활성화해서는 안됩니다. PDB를 생성하면 디버깅 할 때 더 많은 정보를 얻을 수 있습니다. 코드의 성능은 PDB 파일의 존재에 의해 어떤 식 으로든 영향을받지 않습니다.
릴리스 배포와 함께 .PDB를 제공 할 필요는 없지만 유지하는 데 유용합니다. 예를 들어 컴퓨터의 PDB를 사용하여 다른 컴퓨터에서 실행되는 코드를 원격으로 디버깅하여 예외의 줄 번호를 가져올 수 있습니다. 나오다.
.PDB를 사용하지 않으면 줄 번호와 파일 이름이 스택 추적에 포함되지 않으므로 디버깅하기가 훨씬 더 어려워집니다.
빌드-> 고급 ...-> 디버그 정보 :의 프로젝트 속성에서 pdb / 심볼 생성을 제어합니다. 옵션은 다음과 같습니다.
- 없음 (기호 정보 없음 )
- 전체 (.pdb가 생성되고 일부 기호 정보가 어셈블리에 포함됨)
- pdb 전용 (.pdb가 생성되지만 어셈블리는 영향을받지 않음)
자세한 내용은 http://msdn.microsoft.com/en-us/library/8cw0bt21%28VS.80%29.aspx 를 참조하십시오.
나는 강하게 당신이 PDB 전용 옵션을 선택하는 것이 좋습니다 되지 여전히 당신에게 어셈블리에 영향을주지 않고 심볼 정보를 제공으로 none 옵션을 - 당신은 아마이이 릴리스에 당신이 가지고있는 현재 설정 빌드 것을 발견 할 것이다.
컴파일러가 .pdb
파일을 생성 하도록하는 것은 코드를 최적화하는 것과 상호 배타적이지 않습니다.
이 주제에 대한 자세한 내용은 다음 블로그 항목을 참조하십시오 .
참고 URL : https://stackoverflow.com/questions/2371032/c-sharp-release-version-has-still-pdb-file
'Programing' 카테고리의 다른 글
버튼 라디오의 Twitter Bootstrap onclick 이벤트 (0) | 2020.12.10 |
---|---|
scikit CountVectorizer에서 min_df 및 max_df 이해 (0) | 2020.12.10 |
테이블에서 모두 삭제 (0) | 2020.12.10 |
HTML5 캔버스에 회전 된 텍스트 그리기 (0) | 2020.12.10 |
STI, 하나의 컨트롤러 (0) | 2020.12.10 |