您的位置:首页 > 编程语言 > C#

64位操作系统下调用32dll报“试图加载格式不正确的程序”

2012-11-16 08:57 387 查看
本博文参考了《64位操作系统下IIS报“试图加载格式不正确的程序”错误》在此表示感谢

项目刚开始在32位机器下开发的,调用了第三方的dll。直接移植到新的机器上运行时报“试图加载格式不正确的程序”,经过排查发现是因为“程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的。不能混编访问。不然会出现“试图加载格式不正确的程序”的错误。”

解决方法(vs2010 + win7 + 64位):

一、解决方案-属性-配置管理器-活动解决方案平台中添加X86

二、解决方案-属性-配置属性-配置中各项目都选择为X86平台

三、如果是web项目还需要修改IIS的配置,具体办法可以参考《64位操作系统下IIS报“试图加载格式不正确的程序”错误

    

B:建立的是“网站”:只需要修改IIS的配置就可以了。
i)“cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1”
(enable32bitapponwin64为1代表可运行32位应用程序),该项可以通过 “命令行”执行一次。(此命令的作用是使IIS能够注册32位的.net FW)
ii)64位OP默认是在IIS下注册了64位的.net Framework的,因此还必须再注册一个32位的.net Framework
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>  aspnet_regiis.exe -i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# .NET
相关文章推荐