nuget 包与其引用的 nuget 包之间的不同版本
Posted
技术标签:
【中文标题】nuget 包与其引用的 nuget 包之间的不同版本【英文标题】:Different versions between a nuget package and its referenced nuget packages 【发布时间】:2021-07-10 15:50:21 【问题描述】:我有一个引用以下 nuget 包的 Azure 函数(版本 3,dotnet 3.1):
Microsoft.Extensions.Configuration
当我尝试安装这个 nuget 时,我得到了 5.x 版本的包,这会导致安装
Microsoft.Extensions.Configuration.Abstractions
但是我在运行我的函数时遇到了冲突。在其他几个主题上找到的解决方案是降级 nuget 包,因为 Azure 函数不支持 Microsoft.Extensions.Configuration.Abstractions 包的 5.0 依赖项。
所以我在包管理器控制台中执行以下命令行来安装初始的nuget包:
Install-Package Microsoft.Extensions.Configuration -Version 3.1.14 -DependencyVersion Lowest
但它总是安装依赖“Microsoft.Extensions.Configuration.Abstractions”的版本 5.x
对于下载正确版本的依赖有什么建议吗?
【问题讨论】:
在 .proj 文件中指定版本。之后,不应该安装错误的包 我用了你给的命令,everything好像没问题。 请与我们分享您安装的所有 nuget 包。您是否安装了任何其他依赖于Microsoft.Extensions.Configuration.Abstractions 5.x
的 nuget 包?请检查一下。在我这边,it shows the right version 3.1.14。另外,请关闭VS,删除C:\Users\xxx\.nuget\packages
下的所有文件,然后重启你的项目再次检查。
我发现我的问题与 azure 函数无关。但是来自我依赖项中的其他项目。我对 3.1.14 进行了广泛的降级(甚至是使用 net5 的项目),一切都已修复。谢谢大家!
【参考方案1】:
我用了你给的命令,一切似乎都没有问题:
1.正如cmets中提到的Sara Liu-MSFT
,您可能需要检查其他程序集是否引用Microsoft.Extensions.Configuration.Abstractions
。如果是这样,您可能需要降级该程序集。
您可以在这里查看:
2. 或者您可以尝试手动引用Microsoft.Extensions.Configuration.Abstractions
程序集:
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.14" />
【讨论】:
如上所述,在我的解决方案中完全降级我的所有项目可以解决问题。但是您的评论是正确的(就像我一样)。因此,我会将您的答案标记为解决方案。非常感谢!以上是关于nuget 包与其引用的 nuget 包之间的不同版本的主要内容,如果未能解决你的问题,请参考以下文章