5

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

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

找不到“异步”修饰符所需的所有类型。您的目标是错误的框架版本,还是缺少对程序集的引用?

但这段代码不会编译:

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 没有找到异步所需的引用,除了我有 VS 2012 NOT VS 11 Beta - 尽管它已安装。我也在一个全新的程序集中尝试了它,没有指向应用程序的 xaml 命名空间。

4

3 回答 3

6

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

于 2012-10-20T10:34:38.800 回答
4

我们刚刚发布了 .NET Framework 4、Silverlight 4 和 5 以及 Windows Phone 7.5 的 Async 测试版:http: //blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await -无网络框架4-5.aspx

于 2012-10-23T16:51:05.233 回答
1

您不能在 Visual Studio 2012 中使用 AsyncCTP。您可以为 Silverlight 5 使用 Async Targeting Pack(可在 NuGet 上获得)。对于 Silverlight 4,尚无可用的解决方案,不确定是否会有。

于 2012-10-20T13:06:34.607 回答