找不到async修饰符所需的所有类型

时间:2012-10-20 09:40:51

标签: silverlight task-parallel-library silverlight-5.0 async-await reactiveui

我收到以下两个编译器错误(Resharper 7.0.1报告没有错误):

  

未定义或导入预定义类型'System.Runtime.CompilerServices.IAsyncStateMachine'

  

找不到'async'修饰符所需的所有类型。您是针对错误的框架版本,还是缺少对程序集的引用?

但是这段代码不会编译:

public class Class1
{
    public Class1()
    {
        Um();
    }
    public async Task<DownloadStringCompletedEventArgs> Um()
    {
        var client = new WebClient();
        return await Observable.FromEvent<DownloadStringCompletedEventHandler, DownloadStringCompletedEventArgs>(x => client.DownloadStringCompleted += x,
                                    x => client.DownloadStringCompleted -= x);
    }
}

我已经看过MSBuild doesn't find async required references了,除了我有VS 2012 NOT VS 11 Beta - 虽然已经安装了。我也尝试了一个全新的程序集,没有指向应用程序的xaml命名空间。

3 个答案:

答案 0 :(得分:6)

您需要Async Targeting Pack支持Silverlight 5中的async

答案 1 :(得分:4)

我们刚刚发布了Async for .NET Framework 4,Silverlight 4和5以及Windows Phone 7.5的测试版:http://blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx

答案 2 :(得分:1)

您无法在Visual Studio 2012中使用AsyncCTP。您可以在Silverlight 5上使用Async Targeting Pack(在NuGet上可用)。还没有针对Silverlight 4的解决方案,不确定是否有任何解决方案。