我们有一个应用程序(基于x86版本构建)和Outlook vsto功能区(基于x86版本构建),并且我们使用Outlook赎回在两者之间进行通信。
Redemption.RDOSession RDOObj =(Redemption.RDOSession)Activator.CreateInstance(objsession_late);
对于32位前景,一切正常。现在,我们必须将Outlook vsto功能区扩展为64位Outlook,以便将vsto用版本x64编译并使用64位Outlook Redemption DLL。这是我的问题,因为我们有很多32位dll引用,所以无法在x64上构建我的应用程序。现在,我们尝试从32位应用程序中调用Outlook赎回64位,并获取System.BadImageFormatException(显而易见)。有什么办法可以解决这个问题,请告知。
谢谢!
答案 0 :(得分:0)
是的,这是可以预期的-32位进程无法加载64位dll(请参见http://www.dimastr.com/redemption/faq.htm#ErrorCreatingRedemptionObject)。
唯一的解决方法是将MAPI /赎回专用代码移动到单独的exe中,并在x86和x64中进行编译。然后,您的主应用程序可以根据Outlook位数启动该辅助exe的适当版本。