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

时间:2017-03-09 21:37:54

标签: c# dll msbuild conflicting-libraries assemblybinding

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

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

我已经在bin文件夹中添加了一个程序集绑定配置文件来绑定到DLLv2。但这似乎没有任何改变。

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

问题:

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

1 个答案:

答案 0 :(得分:0)

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