使用 CefSharp 构建 x64 项目

Mar*_*rov 4 c# 64-bit cefsharp

我尝试编译我的应用程序,它具有 CefSharp 作为依赖项。面向 x86 时一切正常,但对于 x64,我收到以下错误:

System.BadImageFormatException: 'Could not load file or assembly 'CefSharp, Version=67.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138' or one of its dependencies. An attempt was made to load a program with an incorrect format.'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢。

这是我在 VS 2017 中的配置设置的屏幕截图,

在此处输入图片说明

和项目属性的构建选项卡:

在此处输入图片说明

Mar*_*rov 5

Hans Passant 在评论中写道:

解决方案平台名称与 C# 项目无关。只有一项设置很重要,其值与平台名称无关。右键单击您的 EXE 项目 > 属性 > 构建选项卡。您只能在 Platform target = AnyCPU 和 Prefer 32-bit 未勾选的情况下获得 64 位执行。您现在可能已经勾选了“首选 32 位”(默认),所以当它尝试加载 x64 非托管代码时,kaboom。

那正是问题所在。谢谢汉斯!

  • `CefSharp` 支持 `x86` 和 `x64`。问题是关于让 `AnyCPU` 默认为 `Prefer 32bit` 这会导致问题,因为无法加载 `x64` 非托管程序集。如果你想使用 `AnyCPU` 你应该看到 https://github.com/cefsharp/CefSharp/issues/1714 (2认同)