gpt4 book ai didi

c# - 为什么在使用 Microsoft.Bcl 时不能在我的 Windows Phone 7.1 MvvmCross 项目中使用 await 关键字 - 不能等待 'System.Threading.Tasks.Task?

转载 作者:太空狗 更新时间:2023-10-30 00:10:53 25 4
gpt4 key购买 nike

在使用 Microsoft.Bcl“Microsoft BCL 可移植包”时,我无法在我的 MvvmCross Windows Phone 7.1 项目中使用 await 关键字。

我已经在 GitHub and the await error occurs on this line 上发布了下面描述的示例项目的代码.

当我尝试构建包含 FirstViewModel 的第三个“核心”Windows 可移植类库 (PCL) 时,出现以下错误:

Type System.Threading.Tasks.Task<string> not awaitable under VS red squiggles, and
Cannot await 'System.Threading.Tasks.Task<string>' when building.

解决方案中有四个项目:

  1. 一个 Windows 可移植类库 (PCL),其中包含一个接口(interface)引用 BCL 提供的“任务”对象。

  2. 针对 OS 7.1 的 Windows Phone 类库实现了上面的接口(interface),还使用 ​​BCL 中的“任务”。

  3. 另一个 Windows 可移植类库 (PCL),它提供了应用的“核心”功能,包括 ViewModel。

  4. Windows Phone 7.1/“7.5”应用程序尝试引用和使用上面的 DLL。

包含接口(interface)和接口(interface)实现的前两个项目编译没有任何错误。但是第三个“核心”PCL 无法构建,并出现上面显示的错误。

如果您需要更多详细信息:

  • 我按照“已知 BCL 问题”中的说明尝试了此 App.config“修复”: http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx .但是当我将 App.config 添加到“核心”项目时,或者当我尝试将相同的 App.config 添加到每个项目时,这并没有解决错误。可能是我没有在元素中使用正确的版本,或者我只是错误地执行了 App.config。

  • 解决方案中设置为以 PCL 为目标的每个项目在 Visual Studio 中都设置为“Profile104”。

这些 DLL 位于:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0\Profile\Profile104\
  • 此 PCL 配置文件在 Visual Studio 项目属性中显示为针对这些平台:适用于 Windows 应用商店应用、.NET 4.5、Silverlight 4+ 和 Windows 7.5+ 的 .NET

  • 解决方案中的每个项目还通过 NuGet 引用 Microsoft.Bcl“Microsoft BCL 可移植性包”。

  • 所有四个项目都使用 MvvmCross (Mvx)。

  • 此示例中的所有项目均未尝试针对与 Xamarin Droid/iOS 堆栈相关的任何内容。它是所有 Windows 并且仍然在 await 关键字上失败。

  • 带有接口(interface)的 PCL 和 Windows Phone 类库都使用 Mvx CrossCore NuGet 包,并设置为作为“Mvx 插件”使用。

  • “核心”PCL 使用完整的 MvvmCross NuGet 包并包含发生等待错误的 FirstViewModel。

  • Windows Phone 应用程序项目也引用了完整的 MvvmCross,其中包含特定于 Windows Phone 的 Mvx 文件。

  • 如前所述,see the failing sample code on GitHub .

最佳答案

您需要添加 Microsoft.Bcl.Async NuGet 包。

这些包以前在非 Microsoft 平台上不可用,但作为 Xamarin 协作的一部分 Microsoft relicensed them可在所有平台下使用。

关于c# - 为什么在使用 Microsoft.Bcl 时不能在我的 Windows Phone 7.1 MvvmCross 项目中使用 await 关键字 - 不能等待 'System.Threading.Tasks.Task?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18370330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com