程序集绑定重定向及其与程序集引用中特定版本属性的关系

时间:2019-03-17 07:00:34

标签: c# .net visual-studio

  1. 为什么绑定重定向在以下场景中不起作用?我在做什么 这里有什么问题吗?怎么修?我不想从中引用log4net 我想从本地文件夹引用程序集的GAC。
  2. 程序集引用中与特定版本属性是否有任何关系 和程序集绑定重定向?我不确定这里的大会A是否在 使用为log4net引用设置为true的specifc版本编译为 它来自第三方代码和旧版代码,这是导致程序集绑定重定向无法正常工作的原因。

程序集A引用log4net 1.2.10.0,而程序集B引用log4net 2.0.8.0

程序集A的清单如下: enter image description here

由于程序集A找不到程序集,我在运行时遇到了异常。

System.IO.FileLoadException: Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'

我尝试了以下选项,但没有运气。

  • 在app.config中添加了绑定重定向,如下所示。 [下面第一个链接中的解决方案1]

    enter image description here

  • 已将程序集复制到不同的文件夹,并用于并行加载它们。 [下面第一个链接中的解决方案3]

    enter image description here

使用的参考文献:

how-to-resolve-net-reference-and-nuget-package-version-conflicts

redirect-assembly-versions

how-exactly-does-the-specific-version-property-of-an-assembly-reference-work-i

how-do-i-redirect-assembly-binding-to-the-current-version-or-higher

net-reference-specificversion-true-or-false

0 个答案:

没有答案