我有一个旧的ASP.NET Web Form项目,我需要添加一个异步库。我已将其升级到.NET Framework v4.5.1。它可以与Visual Studio 2013完美地运行和编译。
但是,当我用Visual Studio 2015打开它时,它不会编译。每个异步调用都有TaskAwaiter does not implement INotifyCompletion
错误。
例如,以下代码:
public async Task AsyncDelay()
{
await Task.Delay(1);
}
抛出以下错误:
CS4027'TaskAwaiter'未实现'INotifyCompletion'
任何帮助都将不胜感激。
答案 0 :(得分:14)
我终于找到了这个问题。这个nuget包已经安装
https://www.nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack/1.0.1
那是支持旧版Visual Studio的。我删除了这一切,一切正常。
我在这个上浪费了太多时间......
答案 1 :(得分:2)
我今天遇到了这个问题,我认为这可能对某人有所帮助: 不推荐使用Microsoft.CompilerServices.AsyncTargetingPack,但还有另一个包
https://www.nuget.org/packages/Microsoft.Bcl.Async
我已将其从项目中删除,现在一切正常。