Whenever a library such as Forms changes its dependencies to a newer version of the support libraries, a new zip ala android_m2repository_r22 will be downloade to c:\users\<you>\AppData\Local\Xamarin
A couple of problems in this regard:
1. The zip is downloaded for each version of the support library (CardView, MediaRouter etc etc). With the ever growing and expanding things in these libraries these get quite hefty (140mb plus at the moment). The zip is downloaded for every single library resulting in an unnecessary download of multiple 140mb plus files, which can be quite annoying when on a slow connection.
This results in a very long first build time when this library needs to be downloaded
2. Worse, there is no proper checking of whether the zip has downloaded / expanded correctly. This can result in all sorts of weird errors, such as errors in the Resource.Designer.cs complaining about missing resources id's. This is really BAD!
3. There is no visual clue what the build system is doing at this moment, it might be helpful to show that is downloading this stuff. I was really confused by what was happening and thought that Xamarin was hanging because I was waiting 10mins plus for a single build and broke it of (resulting in point 2 + a couple of hours of frustration of WTH was happening)).
For bookkeeping I'll record that item 1 has its own bug report under Bug 32498.
Fixed in monodroid/master/b9ad35a0
Support has been added to allow the component team to set a Sha1sum for the file it is downloading. This will be compared against the sha1 of the file to make sure it is valid.
On top of this the Task responsible for downloading the files now has more verbose output which includes progress, so it should be clear in the Output window that the files are being downloaded.
Great! Thanks for listening and fixing it