今天在一个 asp.net core 项目中遇到了 nuget 包版本冲突的问题,错误信息如下:

Version conflict detected for Microsoft.AspNet.WebApi.Client. Reference the package directly from the project to resolve this issue.
Cnblogs.Zzk.ServiceAgent -> Cnblogs.Net 2.0.1 -> Microsoft.AspNet.WebApi.Client (>= 5.2.6)
Cnblogs.Zzk.Web -> Microsoft.AspNetCore.App 2.1.0-rc1-final -> Microsoft.AspNet.WebApi.Client (= 5.2.4)

Cnblogs.Zzk.Web 是一个基于 asp.net core 2.1 rc 1 的项目,所引用的 nuget 包 Microsoft.AspNetCore.App 引用了 Microsoft.AspNet.WebApi.Client 5.2.4 ,而引用的 Cnblogs.Zzk.ServiceAgent 项目所引用的 nuget 包 Cnblogs.Net 则引用了 Microsoft.AspNet.WebApi.Client 5.2.6

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Cnblogs.Zzk.ServiceAgent\Cnblogs.Zzk.ServiceAgent.csproj">
</ProjectReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>

版本冲突就是由于这两个地方引用的 Microsoft.AspNet.WebApi.Client 版本不一致。

要解决这个版本冲突问题有三个方法:

1)升级 Microsoft.AspNetCore.App 所引用的 Microsoft.AspNet.WebApi.Client ;

2)降级 Cnblogs.Net 所引用的 Microsoft.AspNet.WebApi.Client ;

3)既不升级也不降级,通过某种兼容处理方式解决版本冲突。

第 1 种方法此路不通,Microsoft.AspNetCore.App 不是我们自己的项目。

第 2 种方法退而求次,但不想因为这个问题而降级。

于是,选择了第 3 条路。

如果是 .net framework 项目可以通过 assembly  binding redirect 机制解决,添加下面的配置即可

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="" publicKeyToken="" />
<bindingRedirect oldVersion="" newVersion="" />
</dependentAssembly>
</assemblyBinding>
</runtime>

但 .net core 中根本没有 assembly  binding redirect 机制,那怎么办?

非常好办,只要认真看了错误提示信息:

Version conflict detected for Microsoft.AspNet.WebApi.Client. Reference the package directly from the project to resolve this issue.

只要在 Cnblogs.Zzk.Web 项目中添加 Microsoft.AspNet.WebApi.Client 的引用,并且使用冲突中的最高版本,比如这里引用 5.2.6 ,

<ItemGroup>
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.6" />
</ItemGroup>

就可以简单粗暴地解决 nuget 包版本冲突问题。

解决 .net core 中 nuget 包版本冲突问题的更多相关文章

  1. 解决 .net core 中 nuget 包版本冲突问题[转载]

    今天在一个 asp.net core 项目中遇到了 nuget 包版本冲突的问题,错误信息如下: Version conflict detected for Microsoft.AspNet.WebA ...

  2. maven中导入包版本冲突的解决

    导入struts包,在struts核心包的ognl包下存在javassist包: 然后再导入hibernate包,在hibernate核心下也存在javassist包: 这样便会存在冲突,ecplis ...

  3. 快速解决flutter中package包版本冲突问题

    当你的项目需要安装的依赖包越多,遇到包冲突可能性就越大,尤其是当依赖的包有重大更新时.比如下图: 上面可以看到是xml跟intl_translation两个包有冲突,因为他们依赖两个不同的petitp ...

  4. 解决Maven项目中jar包依赖冲突问题

    版本冲突的解决方案 [1]调节原则 [1]路径最短者优先原则 [2]路径相同时,先声明者优先原则 [2]排除原则:用于排除某项依赖的依赖jar包 <dependency> <grou ...

  5. redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法

      项目中出现如下错误,记录下解决方法: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exce ...

  6. 施用 maven shade plugin 解决 jar 或类的多版本冲突

    施用 maven shade plugin 解决 jar 或类的多版本冲突   使用 maven shade plugin 解决 jar 或类的多版本冲突java 应用经常会碰到的依赖的三方库出现版本 ...

  7. elasticsearch依赖的jackson-jar包与jboss依赖的jackson-jar包“版本”冲突

    elasticsearch依赖的jackson-jar包与jboss依赖的jackson-jar包“版本”冲突,导致elasticsearch相关功能在本地tomcat服务器正常,但是部署到jboss ...

  8. BUG—Nuget包版本不一致导致程序行为与预期不符

    注:本文收录于<Bug集锦>,请点击此处查看全文目录 BUG起因 先介绍一下背景: 数周前的一个极其平常的下午,完成了本次迭代的开发工作,发布到QA提测,然后开始摸鱼.没几分钟,测试就来找 ...

  9. spring maven项目解决依赖jar包版本冲突方案

    引入:http://blog.csdn.net/sanzhongguren/article/details/71191290 在spring reference中提到一个解决spring jar包之间 ...

随机推荐

  1. UseSwagger

    if [ "$UseSwagger" != "true" ]; then sed -i "s/\"UseSwagger\": tr ...

  2. Linear SVM和LR的区别和联系

    首先,SVM和LR(Logistic Regression)都是分类算法.SVM通常有4个核函数,其中一个是线性核,当使用线性核时,SVM就是Linear SVM,其实就是一个线性分类器,而LR也是一 ...

  3. js 将图片文件转换成base64

      1.情景展示 在JavaScript中,如何使用图片文件转换成base64? 2.解决方案 /** * 网络图像文件转Base64 * @param img dom对象 */ function g ...

  4. Swift实时画箭头的实现

    iOS上实现画箭头,如果是指定了坐标点,那是很简单的,但如果需要做到实时绘制,就需要计算一下了 需求: 在白板上,根据手势落下点和移动点,实时绘制一条箭头直线(如下图) 实现代码: /// 获取箭头的 ...

  5. 构建自己的 Smart Life 私有云(一)-> 破解涂鸦智能插座

    博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...

  6. STM32F105 PA9/OTG_FS_VBUS Issues

    https://www.cnblogs.com/shangdawei/p/3264724.html F105 DFU模式下PA9引脚用来检测USB线缆,若电平在2.7~5v则认为插入usb设备(检测到 ...

  7. C# C/S程序出错:ContextSwitchDeadlock is detected

    选择菜单栏[调试]->[窗口]->[异常设置] 使用快捷键Ctrl + Alt + E,可以快速打开该对话框 通过取消勾选或者勾选进行设置即可. https://blog.csdn.net ...

  8. 小型互联网公司的IT系统建设思路

    ​​最近一些想创业的一帮兄弟来问我,准备借助互联网的翅膀,做某某事情,并想尽快的做出一个系统平台. 我给的思路,分6个步骤: 需求-> 灵感设计 ->实现 ->迭代改进 ->成 ...

  9. ownCloud安卓android客户端版本2.9.3

    2018年11月26日 版本升级:ownCloud 2.9.3. 下载地址 2018年7月28日 版本升级:ownCloud 2.8.0,支持指纹.图案登录APP. 2018年2月6日 版本升级:ow ...

  10. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...