성능상의 이유로 어셈블리를 GAC에 넣으려고합니다. AssemblyResolve 이벤트에 바인딩되는 코드가 있습니다. 그러나 내 어셈블리를 GAC'ing하기 때문에 AssemblyResolve 이벤트 처리기가 더 이상 충돌의 원인을 내 GAC 어셈블리에서 가져 오지 않습니다.어셈블리 어셈블리 GAC의 어셈블리에 대한
즉, 내 GAC의 어셈블리에는 XYZ.dll에 대한 참조가 있습니다. 별도로 재배포하는 대신 내 GAC의 어셈블리에는 XYZ.dll이 시작시로드되는 임베디드 리소스로 저장되어 있습니다. 어셈블리 확인 처리기는 XYZ.dll의 동적으로로드 된 인스턴스를 반환합니다. 그러나, 내 어셈블리가 GAC가되었으므로 AssemblyResolve 이벤트는 XYZ.dll에 대해 전혀 실행되지 않습니다.
로드 컨텍스트가 다른 것과 관련이 있다고 추측합니다 ... 그러나 어떻게 처리해야할지 모르겠습니다. 내 어셈블리가 GAC되었으므로 이제 어떻게 해결할 수 있습니까?
이것은 자신을 파헤 치기에 매우 복잡한 구멍처럼 들립니다. 왜 당신은 의존성을로드하기 위해'AssemblyResolve' 이벤트를 선택 했습니까? 종속성이 표준 CLR 어셈블리 대신 포함 된 리소스 인 이유는 무엇입니까? –
GAC에도 XYZ.dll이 있습니까? 어셈블리 및 XYZ.dll을로드해야하는 프로세스에 연결하고로드 된 위치를 확인합니다. –
@ProgrammingHero 어셈블리를 병합하려고하지만 ILMerge를 사용하거나 사용하지 않으려는 경우 이러한 종류의 표준. http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx –