It is necessary to move 'standard' assemblies out of the xap-file (Silverlight 4 application). I had a similar problem (http://stackoverflow.com/questions/3329731/silverlight-how-to-handle-standard-assemblies) and got a good link with deep explanations. But not all is clear there.
After I've switched on the 'Reduce XAP size by using application library caching" the size of my xap-file was decreased in twice, the following assemblies were moved out into separate zip-files:
- System.ComponentModel.DataAnnotations;
- System.Windows.Controls,
- System.Windows.Controls.Data,
- System.Windows.Controls.Data.Input,
- System.Windows.Controls.Input,
- System.Windows.Controls.Navigation,
- System.Windows.Controls.Toolkit;
- System.Windows.Data.
But still there are few others that seems like good candidates to be moved out into separate files:
- GalaSoft.MvvmLight.SL4,
- Microsoft.Practices.ServiceLocation,
- Microsoft.Practices.Unity.Silverlight,
- System.Windows.Controls.Toolkit.Internals.
All these assemblies are referenced from the Silverlight application (and also from Silverlight Projects that use these assemblies).
Could you please explain:
- Q1. What is a difference between these mentioned assemblies?
- Q2. How to move these 4 assemblies into a separate zip files too?
Thank you very much!
P.S. Probably, the answer on my question is in the text:
Add a reference to a library assembly in the Silverlight SDK, or to any assembly accompanied by a valid assemblyShortName.extmap.xml mapping file.
But I don't understand what does that mean. If I correctly understand, I need to add a reference on those assemblies (that I want to move out) into a Silverlight SDK. But how to do that? Thanks.