나는 .NET의 주장을 작성하는 비주얼 스튜디오 2010을 사용하고 있습니다 트리거 조회수를 확인한 다음 프로그램을 계속 실행하면 모든 것이 잘 작동합니다. "어설 션 실패"대화 상자가 나타납니다. 그러나 중단 점을 제거하고 응용 프로그램을 다시 실행하면 Debug.Assert() 문이 무시됩니다.Debug.Assert는()는
누구나 아주 이상한 행동을 일으킬 수있는 아이디어가 있습니까?
나는 .NET의 주장을 작성하는 비주얼 스튜디오 2010을 사용하고 있습니다 트리거 조회수를 확인한 다음 프로그램을 계속 실행하면 모든 것이 잘 작동합니다. "어설 션 실패"대화 상자가 나타납니다. 그러나 중단 점을 제거하고 응용 프로그램을 다시 실행하면 Debug.Assert() 문이 무시됩니다.Debug.Assert는()는
누구나 아주 이상한 행동을 일으킬 수있는 아이디어가 있습니까?
제 동료는 문제가 무엇인지 즉시 알았습니다. "Visual Studio 2010/메뉴/옵션/디버깅/일반"에서 "내 코드 만 사용"플래그를 활성화해야했습니다. 분명히 이것은 bug in Visual Studio 2010"입니다.
동일한 문제가 발생했습니다. Trace.Assert
을 사용하면 예상대로 작동합니다.
Trace.Assert
다음 디버깅 세션에서 동일한 동작을 전시하기 시작했다.
아, 문제가 발견되었습니다. '사용 내 코드 만 "확인.
경우' ' 에서'공용 언어 런타임 예외 '에 대한 체크'슬로우 예외 '대화 (Ctrl + Alt + E)와
, 어설 션이 슬로우됩니다.
선택하지 않은 경우, 어설가 슬로우됩니다.
'내 코드 만 사용함'을 선택하지 않았습니다.
'Thrown'을 선택하면 Assert가 throw되지 않습니다.
'Thrown'을 선택하지 않으면 Assert가 발생합니다.
따라서 어설는 '내 코드 만 사용'할 때 선택되어 발생되지 않고 '공용 언어 런타임 예외'에 대한 체크 '슬로우'.
VS 2013에서와 동일한 문제가 발생했지만 "내 코드 만 사용함"을 선택한 경우에도 마찬가지입니다. –
예외 대화 상자에서 "던져진"것을 어디에서 찾을 수 있습니까? 나는 거기 엔 그런 입구가없는 걸까? 선택을 해제해야하는 예외의 전체 이름은 무엇입니까? –
대답은 도움이되지 않았다 여기에 주어진하지만 난 그게 프로젝트의 빌드 설정에서 디버그 구성에 대한 "DEBUG 상수를 정의"옵션을 체크하는 것만 큼 간단 것을 발견 :
당신에게 100됩니다 당신은 디버그 버전을 실행하고 있습니까? 나는 이것이 잠재적으로 어리석은 질문이라는 것을 알고있다 - 그러나 나는 이것을 여러 번 해왔다. – ChrisF
"응용 프로그램을 다시 실행"할 때 디버거에서 실행 중이거나 그렇지 않은 경우? (F5 또는 Ctrl-F5?) 우연히 Express Edition을 사용하고 있습니까? –
앱 다시 작성 시도 – xanatos