Came across this puzzling error while publishing a worker role from VS2013:
The feature named NetFx451 that is required by the uploaded package is not available in the OS * chosen for the deployment.
The culprit is default values in the visual studio worker role template. When you choose to create a worker role in Visual studio, service configuration files are automatically created for you. The attribute osFamily has “3” as a default value in ServiceConfiguration element. Change it to “4” and you are good to go. Remember to change it in both the service configuration files, Local and Cloud.
Hope this help. I lost almost 50 hair scratching my head on this.