VS 提示:请考虑使用 app.config 将程序集“XXX”从版本“XX”重新映射到版本“XX”,以解决冲突并消除警告。

具体提示如下:

请考虑使用 app.config 将程序集“System.Web.Http.WebHost, Culture=neutral, PublicKeyToken=31bf3856ad364e35”从版本“5.0.0.0”[D:\Code…(项目路径就省略了)\bin\System.Web.Http.WebHost.dll]重新映射到版本“5.2.3.0”[D:\Code…\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll],以解决冲突并消除警告。

其实这不是个 错误,是 警告 级别的,所以你也可以忽略它。不过博主是个强迫症患者,所以决定“消灭”它。=。=

下面就来分析一下,找出k.o.它的办法~~~

初步估计原因应该是有某个dll的两个版本,VS 建议使用新的。

于是我打开项目的 packages 文件夹,发现确实是有两个的
这里写图片描述

有两个的原因应该是我的工程包含了好几个 asp.net 项目,有些是比较早前新建的【上一年了,而且同事建的时候用的 VS2013,我的是 VS2015 】,然后我昨天又新建了一个,应该是默认引入的 System.Web.Http.WebHost 版本不一样,所以造成了有两个版本。

直接从 packages 文件夹删除是不行的,因为生成项目的时候 nuget 会还原,而且如果你的工程包含多个项目,也不知道哪个项目用了旧版。删除会造成一些问题。
简单点的操作方法是在 web.config 文件里面添加说明,指定用哪个版本就好啦

这里写图片描述
runtime 下面的 assemblyBinding 节点,里面包含的每个 dependentAssembly 节点就是定义引用程序集的版本,仿照原有的添加一个就好了。

<dependentAssembly>
  <assemblyIdentity name="System.Web.Http.WebHost" culture="neutral" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>

PS:VS提示让我们重新映射到 5.2.3.0,所以 newVersion5.2.3.0

修改完保存后重新生成项目就可以消除这个警告了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值