我收到以下两个编译器错误(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命名空间。
答案 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的解决方案,不确定是否有任何解决方案。