Я удивлен, что это работает вообще.Сначала он должен найти версию x86 и потерпеть неудачу.Неудачное связывание сборки не приводит к другой попытке через AssemblyResolve.
Очевидно, что CLR на самом деле не может найти версию x86, иначе это может привести к ошибке в режиме x64.Другими словами, когда вы исправите проблему, вы сломаете 64-битный код.Сначала найдите проблему x86, используйте Fuslogvw.exe, чтобы увидеть, какие папки проверяются на сборку.
Реальное исправление должно включать в себя перемещение сборки x86 в отдельную папку и соответствующую настройку обработчика событий.Вы можете протестировать IntPtr.Size, чтобы узнать, работаете ли вы в 64-битном режиме (размер == 8).Также обязательно сгенерируйте полное имя пути, использование относительного пути, как вы делаете сейчас, может привести к сбою, когда рабочий каталог приложения не установлен там, где вы надеетесь.Assembly.GetEntryAssembly (). Местоположение указывает путь к EXE-файлу.