无法加载文件或程序集或其依赖项之一。该系统找不到指定的文件

Can not load file or assembly or one of its dependencies. The system cannot find the file specified

 X <= nuget package A <= DLL version 1
 X <= nuget package B <= DLL version 2

所以我的项目 X 引用了两个第 3 方 nuget 包 A 和 B。这两个包引用相同的 DLL,但版本不同。现在的问题似乎是在构建时,DLLv1 被 bin 文件夹中的 DLLv2 覆盖。在运行时,A 中的代码抱怨找不到 DLLv1。

我已经在 bin 文件夹中添加了程序集绑定配置文件以绑定到 DLLv2。但这似乎并没有改变什么。

这是一个使用 msbuild 构建的 CSharp 项目。

问题:

  1. AssemblyBinding 是解决这个问题的正确工具吗?
  2. 解决这个问题的正确方法是什么?

我找到了问题的根本原因。我的程序在 powershell 中是 运行,powershell 不会加载我的应用程序的配置。我需要使 powershell 的配置具有我的绑定。