У меня есть приложение .NET, которое я разрабатывал в течение многих лет (около 15 проектов, некоторые из которых довольно большие), и я только что столкнулся со следующим исключением при попытке его запустить.
Необработанное исключение System.BadImageFormatException: не удалось загрузить файл или сборку System.Runtime.Remoting, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 или одну из его зависимостей. Была сделана попытка загрузить программу с неверным форматом.
Кажется, нет никакого стека вызовов - это происходит до запуска в мой код, поэтому я даже не могу вмешаться. Я использовал эту DLL в некоторых проектах, но теперь я прошел и полностью удалил все ссылки на нее , но я все еще получаю сообщение об ошибке. Это происходит только с этим проектом (я могу запускать другие проекты в рамках решения нормально, а другие проекты из других решений нормально).
РЕДАКТИРОВАТЬ
После долгой возни отключение фреймворка приложения на вкладке приложения в разделе «Мой проект», кажется, позволяет ему запускаться, но я не могу понять, почему. Я действительно хочу снова включить его, поскольку использую некоторые из этих функций.
РЕДАКТИРОВАТЬ 2 После того, как мы долго возились, я думаю, что это вызвано фреймворком приложения, использующим удаленное взаимодействие для обеспечения того, что это приложение с одним экземпляром. Однако рефлектор .NET, кажется, указывает на то, что на самом деле это не должно запускаться, если я сниму отметку с опции одного экземпляра, но у меня все еще есть проблема, даже если я это сделаю. Тем не менее, он по-прежнему входит в область действия метода, который использует типы из этой сборки (Microsoft.VisualBasic.ApplicationServices.ApplicationBase.Run), поэтому я предполагаю, что это то, что заставляет его попытаться разрешить эту сборку. Хотя все это интересно, на самом деле это не дает никакого ответа, почему я получаю это исключение. Я пробовал воспроизвести его с пустым проектом, и он отлично работает - оба настроены на одни и те же настройки фреймворка приложения, как на .NET 4.0, так и на x86. Я не понимаю, куда идти дальше.
AppDomain.CurrentDomain.AssemblyResolve
- например, что-то подобное я опубликовал вчера (см. только часть события) - stackoverflow.com/a/15824128/417747 - или другое утилита для отслеживания того, что вы на самом деле загружаете - person NSGaga-mostly-inactive   schedule 05.04.2013