在app.config中使用“bindingRedirect”将System.Net.Http引用重定向到可移植版本

时间:2014-09-01 06:38:15

标签: windows-phone-8 dll portable-class-library

我正在开发一个Windows Phone 8项目,该项目有一个PCL项目作为其业务层。业务层项目与Android(Xamarin)项目解决方案共享,并使用我们认为在WP 8项目中不可用的HttpClient。

所以根据博客here,我们决定使用System.Net.Http v1.5.0.0 dll的可移植版本,它可以很好地兼容WP8和Android解决方案。但它在WP项目的运行时给出了异常

  

发生了'System.IO.FileLoadException'类型的异常   Insight.Business.DLL但未在用户代码中处理

     

其他信息:无法加载文件或程序集   'System.Net.Http,Version = 2.0.0.0,Culture = neutral,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该   找到程序集的清单定义与程序集不匹配   参考。 (HRESULT异常:0x80131040)

在PCL项目中,我还使用了依赖于System.Net.Http dll的System.Net.Http.FormattingNewtonsoft.Json dll,我认为这会导致此异常。 我尝试使用app.config

重定向引用
<?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-1.5.0.0" newVersion="1.5.0.0" />
      </dependentAssembly>
    </assemblyBinding>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

但我还是无法解决这个问题。请帮助。

1 个答案:

答案 0 :(得分:-1)

您不应该在PCL或Windows Phone应用程序中绑定重定向。

除PCL项目外,您是否已将Microsoft.Net.Http NuGet软件包安装到Windows Phone应用程序项目中?