Async / Await, error: Cannot find all types required by the ‘async’ modifier

La llegada de “async / await” a nuestras vidas como desarrolladores ha sido un gran avance, no porque haga cosas excepcionales, sino porque nos permite mantener una limpieza y coherencia en el código que antes no teníamos.

Pero, a veces, las cosas nuevas nos dan algunos dolores de cabeza y, en concreto, en un proyecto de Silverlight 5 me he encontrado con este error “Cannot find all types required by the ‘async’ modifier”.

¿A qué se refiere esto? ¿Por qué si el compilador me reconoce las palabras claves “async” y “await” me devuelve este error? ¿Estaremos usando una versión incorrecta del Framework o tendremos algún conflicto?

Bueno, esto se debe a que no tenemos todo lo necesario instalado en nuestro proyecto que no viene preparado por defecto para hacer uso de “async / await” y deberemos instalar esta librería Microsoft.CompilerServices.AsyncTargetingPack que nos permitirá poder beneficiarnos de las ventajas que nos ofrece “async / await”.

La librería en cuestión podremos buscarla desde el gestor de paquetes de NuGet que viene en Visual Studio o bien podemos serguir estas instrucciones.

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