在Silverlight应用程序中似乎有两个NuGet包可以使用async / await。我用过
http://nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack
到目前为止,但这已不再出现在搜索中了。相反,我找到了
http://nuget.org/packages/Microsoft.Bcl.Async/
但是,两者都是在同一天(2013年4月18日)最后一次更改,而在说明中没有一个是指另一个。我很想相信后者会取代前者,但我不确定。
我的问题具体是这些包是如何相互关联的,更一般地说,如果有一些关于nuget版本的文档/原则,我应该注意自己理解这一点(例如:是否通常取代包另一个,在哪里记录,等等。)。
答案 0 :(得分:7)
Microsoft.Bcl.Async
is a replacement for Microsoft.CompilerServices.AsyncTargetingPack
.
除非您更改其名称,否则在NuGet上取代另一个包并不常见。在这种特殊情况下,我认为AsyncTargetingPack
(错误地)列出时没有“预发布”标志,然后Microsoft的团队在Bcl.Async
中采取了更广泛的方法(支持更多方案)。
Bcl.Async
取代了AsyncTargetingPack
,但有两个原因造成了一些混乱:1)团队仍然提到Bcl.Async
作为“异步定位包”,以及2)Bcl.Async
包被(正确地)列为预发布,因此对于许多开发者而言,只有AsyncTargetingPack
会出现在NuGet搜索中。
同样,这是所有猜测,但我怀疑微软团队决定保留原样,而不是破坏已经使用AsyncTargetingPack
的开发人员的兼容性。
现在Bcl.Async
处于最终版本,他们可以(并且确实)返回并更正AsyncTargetingPack
/ Bcl.Async
混合,以便现有和新开发者都可以轻松找到正确的包裹。
答案 1 :(得分:-2)
我在Windows XP上使用VS2010和带有Async CTP的.NET 4.0以及C#5.0的其他扩展 这是我的帖子how I get/use extensions for C# 5.0 in .NET 4.0,其中(没有安装.NET 4.5的机器上的.NET 4.0)与安装了.NET 4.5的机器上的.NET 4.0不同
我不使用NuGet,因为它总是带有.NET 4.5(带有.NET 4.0的描述)或.NET 4.0的包,它们在没有安装.NET 4.5的.NET 4.0中不起作用
相关帖子: