我需要.NET 4.5中的Microsoft.Bcl.Async包吗?

时间:2016-02-12 12:51:50

标签: .net .net-4.0 async-await .net-4.5

我有一个针对.NET Framework 4.5的项目P,它有一个针对4.0的NuGet包A(它没有4.5)。现在,A依赖于Microsoft.Bcl.Async NuGet包。强制删除项目Microsoft.Bcl.Async的{​​{1}}依赖项是否安全,因为它的目标是4.5?如果删除它确实安全 - 为什么?

1 个答案:

答案 0 :(得分:2)

您仍需要Microsoft.Bcl.Async。程序包A中的程序集将从Microsoft.Bcl.Async程序包中的程序集引用类型和方法。在.Net 4.5上,你有等效功能的方法,你不会有完全相同的方法,所以包A不起作用。

例如,如果您在使用Microsoft.Bcl.Async时在.Net上await Task,则您的代码会在public static TaskAwaiter GetAwaiter(this Task task)类型上调用扩展方法AwaitExtensionsMicrosoft.Threading.Tasks汇编中。

在.Net 4.5上,程序集不存在,因此这样的代码不起作用。