Question: There appear to be two NuGet packages to use async/await in Silverlight applications. I've used

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

so far, but this didn't show up in the search anymore. Instead I found

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

However, both are last changed at the same date (4/18/2013) and none refers to the other in the description. I'm tempted to believe that the latter supersedes the former, but I'm not sure.

My question is specifically how these packages relate to each other and more generally if there's some documentation / principles about nuget releases that I should be aware of to make sense of this by myself (eg: is it typical to supersede on package with another, where is this documented, etc.).

Answer: 
[`Microsoft.Bcl.Async` is a replacement for `Microsoft.CompilerServices.AsyncTargetingPack`.](http://blogs.msdn.com/b/bclteam/archive/2013/04/17/microsoft-bcl-async-is-now-stable.aspx)

It is not typical to supersede one package with another on NuGet unless you change its name. In this particular case, I believe `AsyncTargetingPack` was (incorrectly) listed without the "prerelease" flag, and then the team at Microsoft took a wider approach (supporting more scenarios) in `Bcl.Async`.

`Bcl.Async` in my mind superseded `AsyncTargetingPack` when it was first (pre)released several months ago, but there was some confusion for two reasons: 1) The team still referred to `Bcl.Async` as the "async targeting pack", and 2) The `Bcl.Async` package was (correctly) listed as prerelease, so for many devs only the `AsyncTargetingPack` would show up in NuGet searches.

Again, this is all speculation, but I suspect the Microsoft team decided to leave things as they were rather than break backwards compatibility for devs who were already using `AsyncTargetingPack`.

Now that `Bcl.Async` is at a final release, they can (and did) go back and correct the `AsyncTargetingPack`/`Bcl.Async` mixup so that both existing and new devs can easily find the correct package.
I am on Windows XP with VS2010 and .NET 4.0 with Async CTP and other extensions for C# 5.0  

Here is my post [how I get/use extensions for C# 5.0 in .NET 4.0](https://stackoverflow.com/a/15972581/2031316), which (.NET 4.0 on machine without installed .NET 4.5) is different from .NET 4.0 on machine with installed .NET 4.5 

I do not use NuGet since it always brings packs either for .NET 4.5 (with descriptions for .NET 4.0) or for .NET 4.0 which do not work in .NET 4.0 without .NET 4.5 installed 

Related posts: 

* My answer to question "[Asynchronous Programming with Async and Await](https://stackoverflow.com/a/16097562/2031316)"
* My question "[Equivalence or conversion matrix between .NET 4.0 Async CTP terms and their .NET 4.5 analogs?](https://stackoverflow.com/q/15915732/2031316)"