解决 "Cannot load file or Assembly" 运行时异常
Resolving "Cannot load file or Assembly" runtime exceptions
多年来,这种错误让我头疼不已,试图弄清楚为什么编译完美的应用程序在启动时失败。
我主要通过第 3 方程序集获得此信息,特别是在 运行 在整个 .NET Framework 上的应用程序中。
我的问题是:我们如何解决它们?
- 是否有自动修复它们的方法?
- 是否有工具可以找到传递引用及其版本?
* 当程序集来自第 3 方时,app.config 中的程序集绑定是解决冲突的唯一方法吗?
相当广泛的问题,但这里有一些提示:
- 阅读this article on how runtime binding works。
- 将 DLL 部署在与可执行文件相同的文件夹中,或 GAC, or, if you absolutely must, use a probing path。
- 使用您打算部署的相同版本进行编译。如果您有更新的 DLL 并且不想重新编译,您可以尝试 binding redirect.
- 如果您 运行 遇到问题,请使用 Fusion logs 进行故障排除。
多年来,这种错误让我头疼不已,试图弄清楚为什么编译完美的应用程序在启动时失败。
我主要通过第 3 方程序集获得此信息,特别是在 运行 在整个 .NET Framework 上的应用程序中。
我的问题是:我们如何解决它们?
- 是否有自动修复它们的方法?
- 是否有工具可以找到传递引用及其版本? * 当程序集来自第 3 方时,app.config 中的程序集绑定是解决冲突的唯一方法吗?
相当广泛的问题,但这里有一些提示:
- 阅读this article on how runtime binding works。
- 将 DLL 部署在与可执行文件相同的文件夹中,或 GAC, or, if you absolutely must, use a probing path。
- 使用您打算部署的相同版本进行编译。如果您有更新的 DLL 并且不想重新编译,您可以尝试 binding redirect.
- 如果您 运行 遇到问题,请使用 Fusion logs 进行故障排除。