解决 "Cannot load file or Assembly" 运行时异常

Resolving "Cannot load file or Assembly" runtime exceptions

多年来,这种错误让我头疼不已,试图弄清楚为什么编译完美的应用程序在启动时失败。

我主要通过第 3 方程序集获得此信息,特别是在 运行 在整个 .NET Framework 上的应用程序中。

我的问题是:我们如何解决它们?

相当广泛的问题,但这里有一些提示:

  1. 阅读this article on how runtime binding works
  2. 将 DLL 部署在与可执行文件相同的文件夹中,或 GAC, or, if you absolutely must, use a probing path
  3. 使用您打算部署的相同版本进行编译。如果您有更新的 DLL 并且不想重新编译,您可以尝试 binding redirect.
  4. 如果您 运行 遇到问题,请使用 Fusion logs 进行故障排除。