2010-01-08 6 views

답변

0

예, 수동으로 어셈블리를로드해야하는 것처럼 보입니다.

내가 찾은 해결책 중 하나는 appDomain의 AssemblyResolve 이벤트를 구독하는 것이 었습니다. 이 이벤트는 어셈블리를 찾을 수 없을 때 발생하며 수동으로 제공 할 수 있습니다.

  1. 이런 이벤트 핸들러를 다시 등록

AppDomain.CurrentDomain.AssemblyResolve + = MyResolveEventHandler;

정적 조립 MyResolveEventHandler (개체를 보낸 사람, ResolveEventArgs 인수) { 반환 Assembly.LoadFrom이 (@ "OldAsm \ Asm.dll"); }

<안녕, 시작 = "2">
  • 특정 코드를 사용하는 코드는 .NET 프레임 워크 어셈블리를로드하려고합니다 도달하면, 그것은 충돌하고 핸들러 (MyResolveEventHandler)를 호출합니다.
  • 코드를 작성하지 않고도 GAC에 아무 것도 넣지 않고 올바른 참조를 해결할 수있는 방법을 찾고 있습니다. 누군가가 길을 찾으면 그것을 게시하십시오.

    감사합니다.

    0

    Activator.CreateInstance로. 예제를 보려면 msdn을 확인하십시오.

    +0

    답변을 주셔서 감사합니다.하지만 반성을 피하려고합니다. 내가하고 싶은 것은 프레임 워크가 올바른 파일로 해석되도록하는 것입니다. 나는 그 dll에 여러 유형의 톤이 있고 반영을 사용하면 구현하는 데 많은 비용이 듭니다. – Krikor

    +1

    로드 ... 메서드를 사용하여 DLL을 직접로드해야합니다. IO에 비해 리플렉션은 중요하지 않습니다. 반사는 대부분의 사람들이 그것을 측정하지 않기 때문에 "나쁜"평판을 가지고 있습니다. 가능한 한 피하십시오, 그렇습니다. 그러나 그것이 정답 일 때 완전히 피하지 마십시오. –

    관련 문제