Skip to content

C# 未能加载文件或程序集“TuesPechkin.Wkhtmltox.Win64”

🏷️ C#

生成 PDF 时发现了一个很奇怪的错误,明明 dll 文件都有的,结果执行总是出现下面的错误。

txt
{"未能加载文件或程序集“TuesPechkin.Wkhtmltox.Win64, Version=0.12.2.1, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。"}

=== 预绑定状态信息 ===
日志: DisplayName = TuesPechkin.Wkhtmltox.Win64, Version=0.12.2.1, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
日志: Appbase = file:///D:/OCT_B2B3.0_1/2_SourceCode/Dev/B2B/Test.Framework/bin/Debug/
日志: 初始 PrivatePath = NULL
调用程序集: MX.HtmltoPdf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null。
===
日志: 此绑定从 default 加载上下文开始。
日志: 正在使用应用程序配置文件: D:\Test.Framework\bin\Debug\Test.Framework.vshost.exe.Config
日志: 使用主机配置文件: 
日志: 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的计算机配置文件。
日志: 此时没有为引用应用策略(私有、自定义、分部或基于位置的程序集绑定)。
日志: 尝试下载新的 URL file:///D:/Test.Framework/bin/Debug/TuesPechkin.Wkhtmltox.Win64.DLL。
错误: 未能完成程序集的安装(hr = 0x8007000b)。探测终止。

终于发现原因了。

工程属性里虽然目标平台选的的是【Any CPU】,但是勾选了【首选 32 位】。

由于工程里只引用了 x64 版本的 dll,所以加载程序集时出错了。 =。=|||