2016-12-01 5 views
0

우리는 상당히 오래된 프로젝트를 가지고 있습니다. 어떤 호스트 (콘솔이나 윈도우 서비스)는 dll 인 "플러그인"을로드합니다. 일부는 nugets에서, 일부는 3d 파티 배포판에서, 일부는 다른 솔루션으로 컴파일되고 손으로 복사됩니다..NET 어셈블리 참조를 찾는 방법

있습니다 거의 백 명이 .. 그리고 그 사람은 몇 년 전에 떠났어.

최근에 나는 System.IO.FileLoadException, the infamous error 0x80131040을 얻었다. DLL 중 하나가 다른 DLL의 잘못된 버전을로드하려고했는데 어떤 어셈블리가 있는지 찾기까지 몇 시간이 걸렸습니다.

나는 퓨전 로그를 사용할 수 있지만, 모두가 나에게 말했다 - DLL의 버전이가 ..

실제로 잘못된 DLL을 참조하는 DLL하는 어떤 정보도

없었다 .. 어느 쪽이 찾았어요 찾고 있었다

호스트 이름 즉 console.exe가 인쇄되지만 참조하는 dll 이름이 인 이 아닙니다.

나는 잠재적으로 .. 반사판은 참조로보고로 전체 백 통과 또는 모든 어셈블리를로드하고 그들의 메타 데이터를 복구 할 수있는 빠른 응용 프로그램을 쓰기 ..하지만 시간

를 취할 것입니다 수 누구든지 dll이 특정 dll을 이름으로 참조하는 것을 찾는 더 빠른 방법을 알고 있습니까?

답변

1

System.IO.FileLoadException은 누락 된 어셈블리에 대해 PublicKeyToken을 제공합니다. 프로젝트의 bin 폴더로 이동하여 공개 키 토큰

과 같은 텍스트가 포함 된 dll을 검색하십시오.
관련 문제