我已经构建了一个使用 PDFium 打印 PDF 文档的 WinForms 应用程序。我从 NuGet 安装了 PDFium,它在我的项目中创建了两个子文件夹——x86 和 x64——正如预期的那样,每个子文件夹里面都有相关版本的 pdfium.dll。我的应用程序的目标平台设置为Any CPU。
当我在我的 Windows 10 64 位机器上调试应用程序时,它运行良好。但是,当我发布应用程序并将其安装在同一台计算机上时,PDFium 会引发异常:
System.BadImageFormatException:试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)
在做了一些研究之后,我将应用程序的目标平台更改为 x86,并从我的项目中删除了 x64 子文件夹。该应用程序现在发布后可以完美运行,因此问题解决了。
但是,我想知道是否有一种方法可以让我的应用程序工作,以便它同时支持 x86 和 x64,使用适用于目标计算机的 PDFium 版本。如果它在可以支持它的机器上安装 64 位版本会很好(这是我们组织中的大多数,但我觉得如果我必须选择一个或另一个,以确保兼容性)。