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

2024-04-06

使用 Microsoft.Bcl“Microsoft BCL Portability Pack”时,我无法在 MvvmCross Windows Phone 7.1 项目中使用 wait 关键字。

我已经发布了下面描述的示例项目的代码GitHub 和等待错误发生在这一行 https://github.com/kstreet/PortableMvxAsync/blob/master/PortableMvxAsync.MvxUseThePlugin.Core/ViewModels/FirstViewModel.cs#L50.

当我尝试构建包含 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),其中包含一个接口 引用 BCL 提供的“任务”对象。

  2. 面向 OS 7.1 的 Windows Phone 类库,实现 上面的接口,还使用 ​​BCL 中的“任务”。

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

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

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

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

  • 我尝试了这个 App.config“修复”,如“已知 BCL 问题”中所述:http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx但是,当我将 App.config 添加到“Core”项目时,或者当我尝试将相同的 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 Portability Pack”。

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

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

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

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

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

  • 如上所述,请参阅 GitHub 上的失败示例代码 https://github.com/kstreet/PortableMvxAsync/blob/master/PortableMvxAsync.MvxUseThePlugin.Core/ViewModels/FirstViewModel.cs#L50.


您需要添加Microsoft.Bcl.AsyncNuGet 包。

这些包以前在非 Microsoft 平台上不可用,但作为 Xamarin 协作 Microsoft 的一部分重新授权他们 http://blogs.msdn.com/b/dotnet/archive/2013/11/13/pcl-and-net-nuget-libraries-are-now-enabled-for-xamarin.aspx可在所有平台下使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在使用 Microsoft.Bcl - 无法等待'System.Threading.Tasks.Task 时,我不能在 Windows Phone 7.1 MvvmCross 项目中使用 wait 关键字? 的相关文章

  • 我可以使用反射更改 C# 中的私有只读字段吗?

    我想知道 由于很多事情都可以使用反射完成 我可以在构造函数完成执行后更改私有只读字段吗 注 只是好奇 public class Foo private readonly int bar public Foo int num bar num
  • 如何从当前 .NET 表单/应用程序发送密钥 F12

    我非常确定以下按钮激活的表单代码应该在我的 C 应用程序中引发 Control F12 SendKeys F12 但它似乎并没有继续进入 Windows shell 并激活另一个正在侦听它的程序 我的键盘可以用 看起来发送键在某处被拦截 并
  • 将 2D 数组映射到 1D 数组

    我想用一维数组来表示一个二维数组 函数将传递两个索引 x y 和要存储的值 这两个索引代表一维数组的单个元素 并相应地设置它 我知道一维数组需要具有 arrayWidth arrayHeight 的大小 但我不知道如何设置每个元素 例如 如
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • 对数字进行向上和向下舍入 C++

    我试图让我的程序分别向上和向下舍入数字 例如 如果数字是3 6 我的程序应该四舍五入最接近的数字 4 如果该数字是3 4 它将向下舍入为 3 我尝试使用ceil库获取 3 个项目的平均值 results ceil marks1 marks2
  • glDrawElements 只绘制半个四边形

    这是我的功能 void Object draw2 if mIsInitialised return Tell OpenGL about our vertex and normal data glEnableClientState GL VE
  • 通过 mpi 发送 c++ std::vector

    我知道存储一个std vector
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • _mm_max_ss 在 clang 和 gcc 之间有不同的行为

    我正在尝试使用 clang 和 gcc 交叉编译一个项目 但在使用时发现一些奇怪的差异 mm max ss e g m128 a mm set ss std numeric limits
  • 当格式字符串包含“{”时,String.Format 异常

    我正在使用 VSTS 2008 C Net 2 0 执行以下语句时 String Format 语句抛出 FormatException 有什么想法是错误的吗 这是获取我正在使用的 template html 的位置 我想在 templat
  • C#:如何使用 SHOpenFolderAndSelectItems [重复]

    这个问题在这里已经有答案了 有人可以举例说明如何使用 shell 函数吗SH打开文件夹并选择项目 http msdn microsoft com en us library bb762232 VS 85 aspx来自 C 我不太明白如何使用
  • 标准 C 中的 sizeof 与 sizeof()? [复制]

    这个问题在这里已经有答案了 我看到一些直接使用 sizeof 的代码 想知道它是否是标准 C 令我惊讶的是 它运行得很好 这是一个例子 include
  • 为什么 C 函数不能返回数组类型?

    我是 C 语言新手 想知道 为什么 C 函数不能返回数组类型 我知道数组名是数组第一个值的地址 而数组是 C 中的二等公民 您自己已经回答了这个问题 数组是二等公民 C 按值返回 数组不能按值传递 因此不能返回它们 至于为什么数组不能按值传
  • 如何在 C++ 中使用 PI 常数

    我想在一些 C 程序中使用 PI 常数和三角函数 我得到三角函数include
  • 如何从枚举中选择随机值?

    给定 C 中的任意枚举 如何选择随机值 我没有找到这个非常基本的问题 我会在一分钟内发布我的答案作为任何人的参考 但请随意发布你自己的答案 Array values Enum GetValues typeof Bar Random rand
  • 在 MVVM 中,可以在视图后面的代码中访问 ViewModel 吗?

    在 MVVM 模式中 是否可以接受甚至可以访问视图代码后面的 ViewModel 属性 我有一个可观察的集合 它填充在 ViewModel 中 我需要在视图中使用它来绑定到带有链接列表的无限滚动条 IE private LinkedList
  • 如何使用 g++ 在 c++ 20 中使用模块?

    我读了这个链接https gcc gnu org wiki cxx modules https gcc gnu org wiki cxx modules并尝试从该网站复制以下示例 我已经知道这个编译器部分支持模块系统 注 我用的是windo
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐