更新Microsoft Graph NuGet包后出现MSB3277编译警告如何解决
问题解答
- 不需要切换.NET Framework版本。.NET Framework 4.6.2内置的
System.Net.Http程序集版本就是4.0.0.0,你看到的NuGet包依赖的4.2.0.0是NuGet单独分发的System.Net.Http包版本,和框架内置版本的版本号规则存在差异,不需要为了这个升级框架。 - 可以将C#项目
App.config里的newVersion属性修改为4.0.0.0解决冲突,而且同解决方案下的多个项目统一System.Net.Http的绑定重定向规则,还能避免跨项目调用时出现运行时程序集加载失败的问题。
完整操作步骤
- 统一解决方案内所有项目的
System.Net.Http绑定重定向配置,都设置为:
<dependentAssembly> <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" /> </dependentAssembly>
- 检查所有项目的NuGet包列表,卸载单独安装的
System.Net.HttpNuGet包,仅保留.NET Framework自带的框架引用即可,避免多余引用带来的冲突。 - 清理解决方案,删除所有项目的
bin、obj文件夹后重新编译,版本冲突警告就会消失。 - 如果后续运行时出现
System.Net.Http相关的方法缺失异常,右键点击项目引用里的System.Net.Http,将「特定版本」属性设置为False即可。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

