вызывая перспективы погашения 64 бит от - PullRequest
0 голосов
/ 19 сентября 2018

У нас есть приложение (построено на выпуске x86) и лента outlook vsto (построена на выпуске x86), и мы используем погашение Outlook для связи между ними.

Redemption.RDOSession RDOObj = (Redemption.RDOSession)Activator.CreateInstance (objsession_late);

все работает нормально для 32-битной перспективы.Теперь нам нужно расширить нашу ленту outlook vsto для 64-битной перспективы, так что vsto скомпилирована с выпуском x64 и использует 64-битную dll погашения outlook.тут возникает моя проблема: мы не можем построить мое приложение на x64, так как у нас много 32-битных ссылок на dllтеперь мы пытаемся вызвать 64-битное outlook redemption из нашего 32-битного приложения и получаем System.BadImageFormatException (что очевидно).Есть ли способ решить эту проблему, пожалуйста, сообщите.

Спасибо!

1 Ответ

0 голосов
/ 19 сентября 2018

Да, этого и следовало ожидать - 32-битный процесс не может загрузить 64-битную DLL (см. http://www.dimastr.com/redemption/faq.htm#ErrorCreatingRedemptionObject).

Единственный обходной путь - переместить ваш специфичный для MAPI / Redemption код в отдельныйexe и скомпилируйте его как в x86, так и в x64. Затем ваше основное приложение может запустить соответствующую версию этого вспомогательного exe-файла на основе разрядности Outlook.

...