2011-05-12 3 views
-2

클래스 dll 파일을 확인할 수있는 방법이 있습니까? 의가 있다고 가정 해 봅시다 :응용 프로그램 시작 메시지에서 클래스 dll 확인

Example.exe 내 바탕 화면에있는 dll 파일없이 Example.exe을 넣으면 MC.dll 및 LOD.dll

, 그것은 당신에게 "마이크로 소프트 .NET 프레임 워크"오류를 줄 것이다있다.

내가 원하는 것은 dll을 확인하고 그것이 프레임 워크 오류를주는 대신 .exe 응용 프로그램과 같은 디렉토리에 있는지 확인하는 것입니다. 나는 사람들이 무엇을해야할지 알지 못하고 대신에 무슨 일이 일어나고 있는지 알기를 바랍니다. 감사!

+12

시간도 소중합니다. –

+0

리플렉션을 사용하여 어셈블리를 열고 예외를 잡으려고 했습니까? –

+0

비록 한 번에 하나의 심판에만 작동합니다. 왜 그들이 무엇을해야할지 모를 것입니까? 어쩌면 설치 프로그램을 만들어야할까요? –

답변

2

.dll 파일이 있어야하는 디렉터리를 알아야합니다. 따라서 해당 파일이 있는지 확인하십시오. 그들은 메시지 상자 또는 뭔가를 표시하지 않는 경우. 이것은 명백하게 프로그램을 실행하는 외부 응용 프로그램에서 수행해야합니다. 그렇지 않으면 검사를 실행하지 못할 수도 있습니다. (DustinDavis에게 명확히 할 필요성을 지적 해 주신 분께)

+0

필요한 참조 목록이있는 외부 앱을 의미한다고 가정하고 앱을 확인합니다. 맞습니까? –

+0

예, 모든 참조가 발견되면 example.exe를 실행하고, 그렇지 않으면 메시지를 표시합니다. 불분명하게해서 유감입니다. – soandos

2

AppDomain.AssemblyResolve 사건을 살펴보십시오. 이 이벤트는 응용 프로그램이 특정 어셈블리를 확인할 수 없을 때 발생합니다. 그런 다음 대체 위치를 제공하여 어셈블리를 찾거나 오류 메시지를 표시 할 수 있습니다.

+0

이것은 어셈블리를 실행하는 내부에서 처리 할 수 ​​있습니다. 그렇습니까? –

+1

오른쪽으로, AppDomain.CurrentDomain.AssemblyResolve 이벤트를 구독하면 런타임에 확인할 수없는 어셈블리에 반응 할 수 있습니다. 그러나 해당 어셈블리에서 형식 중 하나를 사용하기 전까지는 해상도가 적용되지 않을 수 있습니다. –

+0

꽤 멋지 네요. 나는 그것을 몰랐다. –

관련 문제