.NET Standard:程序集的清单定义与程序集引用不匹配

Posted

技术标签:

【中文标题】.NET Standard:程序集的清单定义与程序集引用不匹配【英文标题】:.NET Standard: assembly's manifest definition does not match assembly reference 【发布时间】:2018-10-13 06:14:17 【问题描述】:

只要我更新任何使用 .NET Standard(并且以前没有使用过)的库,我就会得到以下信息:

Could not load file or assembly 'System.Net.Http' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.

使用 package.config

<package id="System.Net.Http" version="4.3.3" targetFramework="net461" />

Web.config

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>

在 Web.config 绑定中尝试使用 4.3.3.0,但同样的错误。 使用 VS 2017 最新版本。

更新

我们发现将Microsoft.Extensions.Logging.Abstractions 从 v1 升级到 v2。从 1.1.2 升级到 2.0.2 就出现上面的错误。

【问题讨论】:

您的目标是什么版本的 .NET Framework? 与 packages.config - 4.6.1 中指定的相同 绑定重定向是否在运行时部分和程序集绑定部分内?确保网络配置正确设置。 是的,就在所有其他绑定的中间...:/ 你有这方面的复制品,我可以看看吗? 【参考方案1】:

我的目标是 4.6.2,我通过 Nuget 安装了 System.Net.Http 版本 4.3.3,我得到了同样的错误。

当我将绑定重定向更改为使用时:

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.2" newVersion="4.1.1.2"/>
  </dependentAssembly>

错误消失了,我可以再次构建和测试而不会出现问题。

【讨论】:

以上是关于.NET Standard:程序集的清单定义与程序集引用不匹配的主要内容,如果未能解决你的问题,请参考以下文章

.netcore 1.1“程序集的清单定义与程序集引用不匹配”

“找到的程序集的清单定义与程序集引用不匹配”

HRESULT:0x80131040:找到的程序集的清单定义与程序集引用不匹配

找到的程序集的清单定义与程序集不匹配

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

Windows 通用应用程序:无法加载文件或程序集 - 找到的程序集的清单定义与程序集引用不匹配