ComponentOne XapOptimizer does have some limitations. This section describes these limitations and offers some suggestions for dealing with them and other issues.
XapOptimizer does not offer assembly cache support.
ComponentOne XapOptimizer does not include support for assembly caching. One solution when working with ComponentOne XapOptimizer is to disable assembly caching from the Silverlight XAP file that you are building.
XapOptimizer removes signatures in third-party signed assemblies.
If you are using third-party signed assemblies in your application, the key will be removed by ComponentOne XapOptimizer when the XAP file is being optimized. To solve this issue, locate the XAP file after optimization and complete the following steps:
1. Select the XAP file and rename the file so that it has a .zip extension. So for example, Application.xap would become Application.zip.
2. Unzip the renamed XAP file to a folder and remove the modified third-party signed assemblies.
3. Add the original third-party signed assemblies (corresponding to those you removed) to the folder.
4. Zip the XAP up again with the original assemblies.
5. Rename the XAP file so that it again has a .xap file extension. So for example, Application.zip would become Application.xap.
The file should now be in the same state as before, except it will contain the original assembly for the third-party signed assemblies in your project.
XapOptimizer does not work as expected.
Sometimes you may run into issues or error messages and be unsure how to proceed. For example, in some cases XapOptimizer may be unable to determine the actual dependencies between classes or XAML resources. In these scenarios, you should pin elements to ensure that required elements and resources will remain in the optimized assembly. But it's not always easy to find the correct elements to be pinned so the application can continue working as expected.
If you run into issues, try completing the following steps:
1. Pin SDK libraries (such as System.Xml.Linq).
2. Pin all the resources and try again.
3. Disable Obfuscation and try again.
4. Pin all the elements and try again. If this works, you can start unpinning elements to determine where the problem is.
If these steps do not work or you have any other questions, please submit a support incident at http://www.componentone.com/Support/.