BadImageFormatException при запуске с включенной прикладной платформой

У меня есть приложение.NET, которое я разрабатывал много лет (около 15 проектов, некоторые из которых довольно большие), и я только что столкнулся со следующим исключением при попытке запустить его.

System.BadImageFormatException было необработанным. Сообщение: не удалось загрузить файл или сборку 'System.Runtime.Remoting, версия =4.0.0.0, Culture= нейтральный, PublicKeyToken=b77a5c561934e089' или одна из его зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Похоже, что нет стека вызовов - это происходит перед запуском в мой код, поэтому я даже не могу вмешаться. Я использовал эту DLL в некоторых проектах, но теперь я прошел и полностью удалил все ссылки на нее, но я все еще получаю ошибку. Это происходит только с этим проектом (я могу запустить другие проекты в рамках решения в порядке, а другие проекты из других решений в порядке).

РЕДАКТИРОВАТЬ

После долгих раздумий отключение инфраструктуры приложения на вкладке приложения в разделе "Мой проект", похоже, позволяет запустить его, но я не могу понять, почему. Я хочу снова включить его, поскольку я использую некоторые из этих функций.

РЕДАКТИРОВАТЬ 2 После большого количества возни, я думаю, что это вызвано тем, что инфраструктура приложения использует удаленное взаимодействие, чтобы убедиться, что это приложение одного экземпляра. Однако отражатель.NET, похоже, указывает на то, что на самом деле его не следует запускать, если я сниму флажок с одного экземпляра, но у меня все еще будет проблема, даже если я это сделаю. Тем не менее, он все еще входит в область действия метода, который использует типы из этой сборки (Microsoft.VisualBasic.ApplicationServices.ApplicationBase.Run), поэтому я предполагаю, что именно это заставляет его пытаться разрешить эту сборку. Хотя все это интересно, оно не дает никакого ответа относительно того, почему я получаю это исключение. Я попытался воспроизвести его с пустым проектом, и это отлично работает - оба установлены на одних и тех же настройках среды приложения, оба на.NET 4.0, оба на x86. Я довольно озадачен тем, куда идти отсюда.

1 ответ

Обычно это может произойти, когда вы изменили целевую платформу.csproj и вернули ее к тому, с чего начали.

Убедитесь, что 1, если поддерживается Runtime версия ="время выполнения отличается от цели проекта CS" в теге запуска в app.config.

Убедитесь, что 2 Это также означает, что проверка других автоматически сгенерированных или других файлов может быть в папке свойств, чтобы увидеть, нет ли больше несоответствия времени выполнения между этими файлами и тем, который определен в файле.csproj.

Это может сэкономить вам много времени, прежде чем вы начнете пробовать разные вещи со свойствами проекта, чтобы преодолеть ошибку.

Другие вопросы по тегам