在Silverlight应用程序中似乎有两个NuGet包可使用异步/等待。我用过

http://nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack

到目前为止,但此内容不再出现在搜索中。相反,我发现

http://nuget.org/packages/Microsoft.Bcl.Async/

但是,两者的最后一次更改是在同一日期(4/18/2013),并且在说明中没有一个涉及到另一个。我很想相信后者会取代前者,但我不确定。

我的问题是这些软件包之间如何相互关联,更普遍地说,如果我有一些有关nuget版本的文档/原则需要我自己加以理解(例如:通常是将软件包与另一个软件包取代吗?该文档等)。

最佳答案

Microsoft.Bcl.Async is a replacement for Microsoft.CompilerServices.AsyncTargetingPack.

除非更改包名,否则通常不会在NuGet上将一个包替换为另一个包。在这种特殊情况下,我认为(错误地)列出了AsyncTargetingPack而没有“ prerelease”标志,然后Microsoft团队在Bcl.Async中采用了更广泛的方法(支持更多方案)。

在我心目中,Bcl.Async在几个月前首次(预)发布时就取代了AsyncTargetingPack,但出于两个原因,这引起了一些困惑:1)团队仍将Bcl.Async称为“异步定位包”,并且2)Bcl.Async软件包被(正确)列为预发行版,因此对于许多开发人员而言,只有AsyncTargetingPack会显示在NuGet搜索中。

同样,所有这些都是推测,但是我怀疑Microsoft团队决定保留原样,而不是破坏已经在使用AsyncTargetingPack的开发人员的向后兼容性。

现在Bcl.Async处于最终版本,他们可以(并且确实)返回并更正AsyncTargetingPack / Bcl.Async混合,以便现有和新开发人员都可以轻松找到正确的软件包。

09-30 09:38