【问题标题】:What is the diffrence between the Microsoft.CompilerServices.AsyncTargetingPack and Microsoft.Bcl.Async? [duplicate]Microsoft.CompilerServices.AsyncTargetingPack 和 Microsoft.Bcl.Async 之间有什么区别? [复制]
【发布时间】:2026-01-05 10:20:04
【问题描述】:

我正在搜索 NuGet 以找到允许您在 .net 4.0 项目中使用 async/await 的库。我最初在寻找Async for .NET Framework 4, Silverlight 4 and 5, and Windows Phone 7.5 and 8,但我找到了Async Targeting Pack for Visual Studio 11

这两个包有什么区别,什么时候应该用哪个?

.NET Framework 4、Silverlight 4 和 5 以及 Windows Phone 7.5 和 8 的异步

此包支持面向 .NET 的 Visual Studio 2012 项目 框架 4(带有 KB2468871)、Silverlight 4 和 5 以及 Windows Phone 7.5(包括任何可移植库组合)使用新的 'async' 和 'await' 关键字。该软件包还包括基于任务的 允许使用一些现有异步的扩展方法 具有新语言关键字的 API。 Windows Phone 8 项目可以使用 这个包可以访问异步扩展方法 网络类型。

Visual Studio 2010 不支持此包,只有在使用使用此包的库时,面向 .NET Framework 4.5 或 .NET for Windows Store 应用程序的项目才需要此包。已知问题请见:http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx


适用于 Visual Studio 11 的异步定位包

“Visual Studio 11 的异步目标包”支持面向 .NET Framework 的项目 4.0 或 Silverlight 5 以使用 C# 和 Visual Basic 中的异步语言功能。

此包需要 Visual Studio 11,不适用于 Visual 工作室 2010。

该包包含使用“异步”和 C# 5.0 和 Visual Basic 11 中的“await”关键字,以及一组 基于任务的适配器 API,允许使用一些现有的 具有新语言关键字的异步 API。

面向 Metro 风格应用的 .NET Framework 4.5 或 .NET 项目不需要此定位包。只有面向 Silverlight 5 和 .NET Framework 4.0 的项目才需要它。不支持较早的平台版本。

【问题讨论】:

    标签: .net visual-studio-2012 .net-4.0 nuget async-await


    【解决方案1】:

    Microsoft.Bcl.Async 取代 Microsoft.CompilerServices.AsyncTargetingPack。定位包保留在 NuGet 中,因此已经使用它的人仍然可以为他们的项目重新下载它。

    请参阅this MSDN article 了解更多信息。

    【讨论】:

      最近更新 更多