在64位环境下Visual Studio 编译引发的 System.BadImageFormatException 问题

本文介绍了如何通过配置Visual Studio中的项目属性来避免混合编译的问题,重点在于正确设置目标平台和平台配置,确保动态库LIB与宿主程序的代码标准一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采用Visual Studio 开发,动态库LIB,可以采用AnyCPU进行编译,当编译所有的.sln文件时候,如果解决方案包含X86的时候,系统会提示混合编译


官方的解释:

配置

指定要显示或修改的配置设置。设置可以为“活动(Debug)”(此为默认值)、“Debug”、“Release”或“所有配置”。

平台

指定要显示或修改的平台设置。默认设置为“活动(Any CPU)”。可以使用“配置管理器”更改活动平台。有关更多信息,请参见如何:创建和编辑配置


程序启动是否X86还是X64完全取决于宿主程序的代码标准是X64还是32位的。



编译的目标平台是关键点,配置的平台只是当前环境的。

官方的解释:

目标平台

指定输出文件面向的目标处理器。对于 32 位 Intel 兼容的处理器,选择 x86;对于 Intel 64 位 Itanium 处理器,选择 Itanium;对于其他 64 位处理器,选择 x64。选择“任何 CPU”指定可以接受任何处理器。有关更多信息,请参见 /platform(指定输出平台)(C# 编译器选项)

允许不安全代码

允许编译使用 unsafe 关键字的代码。


而上图不是目标平台,我几次都看错了,真希望微软也包目标平台加上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值