nuget软件包,其dll和程序集绑定错误

时间:2019-01-22 16:33:16

标签: nuget

采用Microsoft.AspNetCore.Http.Abstractions之类的程序包,它的Microsoft.AspNetCore.Http.Features中的这一行取决于nuspec

<dependency id="Microsoft.AspNetCore.Http.Features" version="2.1.1" exclude="Build,Analyzers" />

2.1.1的意思是>= 2.1.1,用细语来说就是这样。

因此,我完全依赖于项目中的Microsoft.AspNetCore.Http.Abstractions版本2.1.1

当前,nuget中同时存在2.1.1的{​​{1}}和2.2版本,因此我的项目最终以Microsoft.AspNetCore.Http.FeaturesMicrosoft.AspNetCore.Http 2.1.1结尾。

但是随后,我运行我的项目,并遇到程序集绑定错误,因为实际的Microsoft.AspNetCore.Http.Features 2.2 dll取决于Microsoft.AspNetCore.Http.Abstractions 2.1.1

TLDR Nuspec说Microsoft.AspNetCore.Http.Features 2.1.1,dll已绑定到>= 2.1.1

对于几乎所有MS软件包而言,这似乎都是正确的。

这是一个巨大的模仿,还是我做错了什么?我必须遍历依赖关系图并将自己锁定到每个dll需要的每个确切版本,因为nuspec似乎没有正确配置。

怎么回事?

示例绑定错误:

  

无法加载一种或多种类型:无法加载文件或程序集'Microsoft.AspNetCore.Http.Features,版本= 2.1.1.0,Culture =中性,PublicKeyToken = adb9793829ddae60'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)

(因为nuget给了== 2.1.1

0 个答案:

没有答案