将平台目标改为x86后,.NET控制台程序报System.BadImageFormatException错误
解决x86平台目标下System.BadImageFormatException异常的方案
出现这个错误的核心原因是运行时使用的.NET SDK/运行时架构和你构建的x86程序不匹配,以下是具体解决步骤:
确保构建时指定x86架构
直接用默认的dotnet build可能不会生成x86专属的输出,需要显式指定运行时标识符:dotnet build -c Debug -r win-x86构建完成后,输出文件会在
bin\Debug\net6.0\win-x86目录下,进入该目录再执行程序。用x86版本的.NET运行时执行程序
如果你用的是框架依赖部署,需要调用x86版本的dotnet.exe来运行dll:"C:\Program Files (x86)\dotnet\dotnet.exe" ConsoleApp1.dll(Windows系统下x86版本的.NET通常安装在
Program Files (x86)目录)检查并修正项目配置
打开你的.csproj文件,确认以下配置是否正确:<PropertyGroup> <!-- 指定平台目标为x86 --> <PlatformTarget>x86</PlatformTarget> <!-- 指定Windows x86的运行时标识符 --> <RuntimeIdentifier>win-x86</RuntimeIdentifier> </PropertyGroup>清理旧构建文件后重新构建
有时候旧的64位输出文件会残留干扰,直接删除项目目录下的bin和obj文件夹,再重新执行构建命令。
内容的提问来源于stack exchange,提问作者Chintan Makwana
相关产品推荐
相关产品推荐

