System.BadImageFormatException: Retrieving the COM class factory for component with CLSID {C5CBD7B2-490C-45F5-8C40-B8C3D108E6D7} failed due to the following error: 800703e6.
解决办法是在工程的Post Build Event里加入下面两行:
call "$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO $(TargetPath)
产生这个错误的原因是C#编译器会为程序默认开启数据执行保护(Data Execution Prevention),这造成加载OTAClient.dll失败,我们需要通过editbin.exe关闭这个特性。
相关问题解决方案:
http://www.sqaforums.com/showflat.php?Number=449845&page=0
http://blogs.msdn.com/b/ed_maurer/archive/2007/12/14/nxcompat-and-the-c-compiler.aspx
数据执行保护机制介绍:
http://technet.microsoft.com/zh-cn/library/cc738483(v=ws.10).aspx