Как правило, для больших составных приложений вы загружаете хост-приложение, которое принимает «попадание» в DLL (то есть, если вы используете x, y и z, они будут включены в хост). Другим вариантом является облегченный вводный XAP, затем загрузите дополнительные в фоновом режиме.
В любом случае, ключ заключается в том, чтобы выработать стратегию взаимосвязи ваших проектов, чтобы вы включали DLL только один раз. Если у вас есть файл XAP, содержащий необходимую DLL, любой другой XAP, загруженный в то же приложение, может установить ссылку на «copy-local = false». Это означает, что он по-прежнему будет ссылаться, например, на System.Windows.Controls.Data.dll, но фактически не будет сохранять копию в сгенерированном XAP.
Итак, еще раз, если вы хотите уменьшить объем и время загрузки исходного файла, у вас может быть: Application.xap, который запускается и предоставляет пользователю навигацию, заставку и т. Д. Он мгновенно динамически загружает «библиотеки». .xap ", который содержит зависимые библиотеки DLL (элементы управления и т. д.) в фоновом режиме, и, наконец, любые другие" Module1.xap "и" Module2.xap "будут просто ссылаться на библиотеки DLL, но для локальной копии будет установлено значение false.
У меня есть подробный пример с исходным кодом:
http://csharperimage.jeremylikness.com/2010/06/advanced-silverlight-applications-using.html