2011-03-17 3 views
0

dll 's myops의 버전 번호가 서로 다른 GUID를 가리키고 있기 때문에 프로그램이 올바르게 실행되고 있지 않다는 것을 증명하는 방법을 찾고 있습니다.프로그램의 잘못된 참조 디버깅

다른 컴퓨터의 "theirs"가 아니라 내 컴퓨터에서 작동합니다.

누구나 시작할 때 프로그램을 볼 수있는 디버깅 도구를 추천 할 수 있습니까? "dll을 찾고, 찾을 수 없거나 종료되는 것"과 같은 것을 볼 수 있습니까?

이러한 것들을 알려주는 로깅 도구가 있습니까?
그렇다면 잘 모르겠습니다.

답변

1

DLL을 찾을 수없는 경우 예외가 발생합니다. 또는 일반적으로 코드에서 interop 라이브러리를 사용하려고하면 COMException이 발생합니다. 당신이 만들 수있는 한 가지 과감한 실수는 그러한 예외를 잡는 것입니다. 그것은 아주 흔한 실수입니다. 하지만 그렇게하지 않으면 진단 할 수없는 실패가 발생합니다. 중요한 코드 덩어리가 누락 되어도 프로그램을 계속 실행할 수있는 점은 거의 없습니다. AppDomain.UnhandledException을 사용할 때 로깅하는 것이 어렵지 않습니다.

이것은 적어도 당신은 당신의 코드를 수정하는 데 도움이 괜찮은 진단을 제공한다. 당신은 좋은 예외 정보를 얻을 때까지 시작할 수 없습니다. 예외 추적으로 고객이 다시 돌아 오기를 기다리지 않고 선제 적으로 수정하는 것은 일반적으로 가능한 클라이언트 구성을 다시 만들고 코드를 테스트해야합니다. 일반적으로 사용되는 4 가지 버전의 IE가있는 것이 좋습니다. 서로 다른 OS와 IE 버전을 설치하고 코드를 테스트 할 수 있도록 가상 머신이 필요합니다. OS 및 IE 버전을 시스템 요구 사항으로 만드는 것은 불합리하지 않습니다.

1

AppDomain.Current.GetAssemblies()을 통해 프로그램에 의해로드 된 모든 어셈블리를 열거하여 직접 더럽고 더러운 시도를 할 수 있습니다. 또한로드 된 어셈블리를 나열하는 것과 관련된 다른 질문 (예 : this one

)을 참조하십시오. 어셈블리에 대한 정보는 Assembly class in MSDN에서 확인할 수 있습니다.

관련 문제