Hi Yu,
I am using download on demand and that works great. The thing I am trying to get around is the following scenario really:
A system containing lots of assemblies (each one is a form in its own right which represents a menu item and is called using late binding).
If I release version 1.0.0.0 for example, and it has 50 assemblies in it. Not everyone will use all of the assemblies and so each user only downloads the assemblies that are required - so far so good.
I now modify one of those assemblies which therefore has a new version number. If I redeploy the manifest with a new application version number 1.0.0.1 what happens is that any assembly that has previously been downloaded is downloaded on demand again because of the new application version number even though it hasn't actually changed at all ( I am not sure that this is working correctly according to the documentation as my interpretation was that it wouldn't download any assemblies that had not changed since the previous version). This means that all users will refresh all of the dlls that they are using instead of just the one dll that has been changed.
If i update the dll version by recompiling but rebuild the manifest with the same version number then the downloadfilegroup command doesn't seem to want to download it again even though the assembly itself now has a different version number.
What I am trying to achieve is that the application will recognise that the single dll has changed and download that but will not redownload all of the others again as this is an unnecessary use of bandwidth.
I hope that explains it a little better.
Regards
Jeremy