我正在Windows Server 2012 R2(x64)上部署我的Asp.net应用程序。使用64位dll时,我得到一个运行时BadImageFormatException。当我使用IIS Express或在本地计算机上发布的应用程序运行它时一切正常(应用程序池 - >解决方案名称 - >启用32位应用程序设置为False,解决方案中的所有项目也设置为Platform target x64)。部署正在通过Team City&八达通部署。
解决方案可能是什么?
UPD System.BadImageFormatException:尝试加载格式不正确的程序。 (来自HRESULT的异常:0x8007000B)位于libxl.XmlBook.xlCreateXMLBookC()的xxx.Controllers.xxx.xxxController.LibxlTest()位于C:\ TeamCity \ buildAgent \ work \ aeb63fe0b246a1f3 \ xxx \ xxx \ Controllers \ xxx \ xxx \ xxxController .cs:第597行
在Octopus Tentacle上没有这样的路径C:\ TeamCity \ buildAgent \。
答案 0 :(得分:1)
最后,它适用于x86(来自libxl
文件夹)版本,而解决方案是为x64构建的。可能是tbody
的特点。因此,我正在使用x64进行开发,在部署之后,我的部署后脚本会将其更改为x86版本。
答案 1 :(得分:0)
好的,看起来您或您的某个参考文献依赖于libXL。
您的异常结果(0x8007000B)肯定是在64位问题上无法加载32位。
libXL是C ++项目,在download zip中有一个bin64
文件夹,其副本为libxl.dll
,可以在64位模式下运行。
如果你有一个libXL许可副本,最好使用64位dll。
请注意,C:\TeamCity\buildAgent\
来自您构建项目的计算机,行号等会保存到您的pdb
文件中。