c#报System.BadImageFormatException
项目内使用了第三方的非托管dll库,导致运行抛出如下异常:
未处理System.BadImageFormatException
Message: “System.BadImageFormatException”类型的未经处理的异常在 XD.Vision.exe 中发生
其他信息: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
原因
第三方dll的目标运行平台与项目不一致。直接在项目属性内设置目标平台环境,可能仍会失败(因该项目的 csproj文件内有冗余的配置项导致失败)
解决办法:
用文本工具打开问题项目的 csproj文件,直接修改,如有冗余配置项则删除。
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\</OutputPath>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\</OutputPath>
<Prefer32Bit>false</Prefer32Bit>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup>