2009-03-10 3 views
8

어셈블리를 수정하지 않고 TRACE 또는 DEBUG 플래그를 설정하여 어셈블리를 컴파일했는지 확인할 방법이 있습니까?.NET 어셈블리가 TRACE 또는 DEBUG 플래그로 컴파일되었는지 확인하는 방법

+0

: 나는 나의 블로그에 올바른 구현을 제공 한? 유래에 – StingyJack

+0

Similars 참조 질문, 하나 개의 질문, 많은, 많은 다른 답변 : http://stackoverflow.com/questions/654450/programatically-detecting-release-debug-mode-net 에 http : // 유래. com/questions/798971/how-to-idllfiy-if-the-dll-is-debug-or-release-build-in-net http://stackoverflow.com/questions/194616/how-to-tell -if-net-app-was-compiled-in-debug-or-release-mode http://stackoverflow.com/questions/50900/best-way-to-detect-a-release-build-from- a-debug-build-net – Kiquenet

답변

2
static bool IsDebug(){ 
bool rv = false; 
#if DEBUG 
rv = true; 
#endif 
return rv; 
} 
+0

감사합니다,하지만 나는 찾고 있습니다. r 어셈블리를 수정하지 않고 알아내는 방법. 내가 선호하는 명령 줄 도구를 사용하여 이미 컴파일 된 어셈블리를 무언가 싶습니다. – Ralf

1

아마도 일반적인 방법은 없습니다. 그러나 및 Debug에 대한 참조는 System.Diagnostics 네임 스페이스에서 찾을 수 있습니다. 이들의 존재는 DEBUG 플래그가 설정되었음을 나타냅니다.

Trace과 TRACE 플래그에 대해서도 마찬가지입니다.

분명히 소스 코드가이 네임 스페이스의 유형을 사용하지 않으면이 기능이 작동하지 않습니다.

3

IsDebug 도구로 연결되는 링크와 사용상주의 사항

5

가장 좋은 방법은 컴파일 된 어셈블리 자체를 검사하는 것입니다. Rotem Bloom의 '.NET Assembly Information'이라는 매우 유용한 도구가 here입니다. 이 파일을 설치하면 .dll 파일이 asociates로 열립니다. 설치가 끝나면 어셈블리를 두 번 클릭하여 열 수 있습니다. 그러면 아래 스크린 샵에 표시된대로 어셈블리 세부 정보가 표시됩니다. 거기에서 디버그가 컴파일되었는지 여부를 확인할 수 있습니다 .

alt text http://ruchitsurati.net/myfiles/asm_info.jpg

alt text http://ruchitsurati.net/myfiles/release_assembly.PNG

링크 텍스트 : 실제로 올바른 DubuggableAttributes에 반영되지 않습니다 거기에 버그가 http://www.codeplex.com/AssemblyInformation

0

위에서 언급 한 "IsDebug"앱. DebuggableAttribute가 있으면 어셈블리가 JIT Optimized가 아니라고 잘못 가정합니다. 로 또는 어셈블리 코드를 추가하지 않고

How to Tell if an Assembly is Debug or Release

관련 문제