异步PCL会导致不匹配

时间:2013-07-06 14:56:02

标签: .net windows-phone-8 async-await portable-class-library

我有一个PCL项目,它使用了具有一些通用代码的Microsoft.Bcl.Async Nuget包。现在当我引用程序集并在我的WP8项目中使用一些异步方法时,我收到以下错误:

Cannot convert source type 'System.Threading.Tasks.Task<byte[]> [System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]' to target type 'System.Threading.Tasks.Task<byte[]> [mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]'

我尝试添加以下程序集绑定,并将Microsoft.Bcl.Async Nuget包添加到我的WP8项目中,但似乎没有任何效果。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.11.0" newVersion="1.5.11.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.11.0" newVersion="1.5.11.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

有谁知道我做错了什么,或者我还能尝试什么?

非常感谢

1 个答案:

答案 0 :(得分:0)

你可以尝试:

  1. 到处卸载软件包
  2. 从所有项目中删除任何引用System.Runtime,System.Threading.Tasks或Microsoft.Threading。*的绑定重定向。
  3. 在包括WP8项目的每个项目中重新安装软件包
  4. 在WP8项目中应该没有绑定重定向引用System。* - 如果有,也删除它们(你可能正在点击https://nuget.codeplex.com/workitem/3072)。