Не удалось загрузить файл или сборку CDO

У меня есть проект.NET, который использует CDO ActiveX. Everyhting отлично работает на Windows Server 2003, но когда я перемещаю проект на Windows 2008, я получаю сообщение об ошибке ниже. Это потому, что CDO недоступен в Windows 2008? Как это можно решить?

Error: Could not load file or assembly 'Interop.CDO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format., 
StackTrace    at MailBotConsole.ServiceClass.ProcessEmail(String email)

2 ответа

Решение

Это System.BadImageFormatException происходит, когда 64-битная сборка пытается загрузить 32-битную сборку (или наоборот). Я предполагаю, что ваш переход с 2003 -> 2008 года также повлек за собой изменение архитектуры. Убедитесь, что ваш проект соответствует цели сборки указанной сборки, или попробуйте собрать как AnyCPU

У меня была такая же проблема при переходе с 32-битной среды Win XP на Windows 7 64 бит. Я хотел предоставить свое решение для всех, у кого была похожая проблема, потратив несколько часов, прежде чем я понял это.

Я прочитал, что мне нужно переключить мою платформу Active Solution для сборки в режиме x86, но это не решило проблему. Оказывается, я мог оставить свою платформу для любого ЦП, и в моем пуле приложений в расширенных настройках убедиться, что.net framework была правильной (в моем случае мне пришлось переключить ее с 4.0 на 2.0), и мне пришлось включить "включить 32-битный" приложения ", который был установлен в ложь.

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