Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.WindowsAzure.Storage与System.Net.Http冲突_C#_.net_Azure Storage - Fatal编程技术网

C# Microsoft.WindowsAzure.Storage与System.Net.Http冲突

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

我刚刚更新了我的应用程序(包括许多项目)中的所有包。其中一个包是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'

我希望可以添加重定向,因此在我的存储项目中,我放了以下内容:

<?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>