【问题标题】:Missing compiler required member 'System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitOnCompleted'缺少编译器所需的成员“System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitOnCompleted”
【发布时间】:2016-11-28 14:24:37
【问题描述】:

在我的项目中添加这个方法(我生命中的第一次 C# async 关键字测试)后,我收到以下错误,为什么?

public async Task<Member> AddOrUpdate(DownloadFormModel model)
{
   IMailChimpManager mailChimpManager = new MailChimpManager(ConfigurationManager.AppSettings["mailChimpKey"]);

   Member member = new Member {EmailAddress = model.Email, Status = Status.Subscribed};
   member.MergeFields.Add("NAME", model.Name);

   return (await mailChimpManager.Members.AddOrUpdateAsync(ConfigurationManager.AppSettings["mailChimpDownloadListID"], member));
}

编译后 VStudio 2015 内部出错:

缺少编译器所需的成员“System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitOnCompleted”

我的项目是一个面向 .NET Framework 4.5(刚从 4.0 升级)的 ASP.NET MVC 4,我正在尝试在其中集成 MailChimp.NET v3

谢谢。

编辑: 在 VStudio 2015 中创建了一个全新的 MVC WebApplication .NET 4.5 项目,并且相同的方法编译没有错误。我应该检查什么?

【问题讨论】:

  • 您是否有 Microsoft.Bcl.Async nuget 包,.NET 4.5 不需要它并且可能会导致问题?
  • 添加了Microsoft.BlcMicrosoft.Blc.Build,但没有成功。 Microsoft.Blc.Async 未列在 VStudio NuGet 管理器中。
  • 我的意思是,当您以 .NET 4.5 为目标时,您不应该需要任何这些。
  • 好吧,这是你第一次使用异步,我会启动一个新的控制台应用程序并尝试编写一个等待Task.Delay结果的异步方法,因为例子。在开始使用 MailChimp 之前检查 that 是否有效。
  • 嗯,你应该能够很容易地找到它:依次单独尝试每个。 (控制台应用程序 + Mailchimp,没有 Mailchimp 的 ASP.NET v4 应用程序。)

标签: c# .net asp.net-mvc async-await mailchimp


【解决方案1】:

问题是 package.config 文件中的这一行,更一般而言,同一文件中的许多行仍然报告 targetFramework="net40":

<package id="AsyncCTP" version="0.3" targetFramework="net40" />

在将项目重新定位到 .NET 框架 4.5 之后,我应该调用

Update-Package –reinstall <packageName>

对于列表中的每个包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2011-09-26
    • 2023-03-05
    相关资源
    最近更新 更多