C# Microsoft.WindowsAzure.Storage与System.Net.Http冲突
我刚刚更新了我的应用程序(包括许多项目)中的所有包。其中一个包是System.Net.Http。现在我得到一个错误: 带有标识的“存储”存储,版本=1.0.0.0,区域性=中性,PublicKeyToken=null“使用”System.Net.Http,版本=4.2.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a“,其版本高于带有标识的引用程序集“System.Net.Http”,版本=System.Net.Http,版本=4.1.1.3,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a' 我希望可以添加重定向,因此在我的存储项目中,我放了以下内容:C# Microsoft.WindowsAzure.Storage与System.Net.Http冲突,c#,.net,azure-storage,C#,.net,Azure Storage,我刚刚更新了我的应用程序(包括许多项目)中的所有包。其中一个包是System.Net.Http。现在我得到一个错误: 带有标识的“存储”存储,版本=1.0.0.0,区域性=中性,PublicKeyToken=null“使用”System.Net.Http,版本=4.2.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a“,其版本高于带有标识的引用程序集“System.Net.Http”,版本=System.Net.Http,版本=4.1.1.3,区域性=中性,P
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<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>
</assemblyBinding>
</runtime>
</configuration>
在app.config中,但我仍然得到错误。
我想我的问题是:我是否可以对引用的库使用绑定重定向,或者我是否必须回滚我的更新包,并在系统.Net上设置版本约束。Http?,因为soloving Assembly使用的版本X比引用的assemblu版本高。错误:
打开packages.config并删除System.Net.Http条目。保存并生成,然后从nuget读取并组装。
构建并运行 在Visual Studio中编译针对.NET Framework 4.5.1及更高版本的应用程序时,绑定重定向可能会自动添加到应用程序配置文件中,以覆盖程序集统一 在Visual Studio中,在
解决方案资源管理器中选择项目,然后从快捷菜单中选择在文件资源管理器中打开文件夹。在文件资源管理器中,找到项目(.csproj或.vbproj)文件并在记事本中打开它
将以下元素添加到第一个配置属性组(标记下):
好的,在玩了几个小时之后,在互联网上四处寻找,并在这里发布了解决方案,我终于让这个工作开始了。
以下是我所做的步骤
将此文件夹中的System.Net.Http.dll重命名为System.Net.Http.dl\:C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.Net.Build.Extensions\net461\lib
对于引用System.Net.Http的每个项目,确保它们使用的是NuGet包,而不是来自extensions的包
构建项目并查看每个项目的参考文件,检查System.Net.Httpdll的版本(右键单击>属性)
卸载项目并搜索System.Net.Http,并确保它们与步骤3中的版本相同(您可以尝试将它们全部设置为4.2.0.0版本,但我遇到了问题)
一旦完成此操作,尝试重建项目,它应该构建并运行。
我希望这对其他人有所帮助。为什么不重定向到4.2,即
?我尝试了,但没有成功。您需要引用System.Net.Http的v4.2库,并将新版本设置为4.2。我必须将autogenerate标志添加到解决方案中的所有项目吗?或者只是启动一个?你可以找出冲突的项目并添加它。我已经尝试了所有这些,但它似乎不起作用。在我的两个项目中,编辑.csproj文件并将版本设置为4.2.0.0会中断项目中的代码(声明它找不到类型或名称空间名称“Http”,我确实让它编译了,但当它启动时,我在API本身上发现了一个错误,声明它找不到System.Net.Http 4.0.0.0,我在任何地方都没有引用它,我在我的任何项目中都找不到,在所有需要它的项目中我都找到了
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>