Мы столкнулись с той же проблемой с обработчиком событий AssemblyResolve
.Как ни странно, мы видели эту проблему только на компьютерах с Windows XP.Наше приложение локализовано на многие языки, поэтому мы не решались использовать NeutralResourcesLanguageAttribute
.Наше приложение было скомпилировано для .NET v3.5, но все еще находилось под влиянием AssemblyResolve
изменения , документированного для .NET v4.0:
Важно Начиная с .NET Framework 4, событие ResolveEventHandler возникает для всех сборок, включая сборки ресурсов.В более ранних версиях событие не было инициировано для сборок ресурсов.Если операционная система локализована, обработчик может вызываться несколько раз: по одному разу для каждой культуры в резервной цепочке.
Мы решили, что для этого нужно проверить e.Name
и посмотреть, смотрит ли ондля * .Resources.dll.Если этот файл не был найден в AppDomain или в известной папке, мы удалили бы «.Resources» и искали * .dll.Если этот файл существует, мы загружаем и возвращаем эту сборку.Это решило проблему для нас.