The cache on disk should get updated if we successfully compiled any of the assemblies. And the entry should, maybe, be removed when one fails.
And allow the cache to be skipped completely
Instead of carefully trying to ensure the cache file, it can be removed completely. It would mean that we'll be computing hashes for the assemblies, which isn't too expensive.