Why do the assemblies in the Expression Blend SDK not support Application Library Caching?
Admittedly, creating extmap.xml files is relatively simple:
http://msdn.microsoft.com/en-us/library/dd833069(VS.95).aspx
But while many t开发者_运维技巧hird-party libraries provide extmap.xml files with their assemblies (for instance, Telerik thankfully does), the Blend SDK doesn't (looking in my C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\Silverlight\v4.0\Libraries). I don't see any reason at the moment for that being the case.
Is it just a simple oversight? Is there some reason those particular assemblies shouldn't be included in app library caching? Is it a support issue and they're not supported being outside the xap?
Admittedly, the 5 dll's we're using from that SDK only total about ~420KB (before compression) in our xap, but I'd like to move them out if there's no technical or support reason not to do so. :)
There is no technical reason not to do so. The tookit dlls originally came without extmap files as well but as you say its fairly easy to create them.
Technically the applications use them in exactly the same way, the app will download and load all the zipped dlls before it executes the app just as it would load all the dlls embedded in a Xap normally.
You just need to be careful to avoid going back to the days of dll hell. It can be tricky to host multiple Xaps in the same ClientBin folder that use different versions of the dlls. Hence you should really be prepared to build and release an entire ClientBin folder together.
Of course there is nothing stopping you using multiple folders to avoid version issues but that would reduce the caching benefit.
精彩评论