Wednesday, July 21, 2010

Xaps Minifier. Дополнение для Visual Studio 2010, позволяющее уменьшать размер Silverlight приложений

Я постоянно работаю с Silverlight приложениями и выкладываю релизы регулярно. Как правило, я использую паттерн MVVM и его реализацию Prism. В результате создаётся несколько XAP файлов, содержащих сборки приложения и манифест.

Каждый, кто работает в соответствии с таким подходом, замечает, что большинство XAP файлов содержат дублирующиеся сборки. Например, при использовании библиотеки Prism, практически каждый XAP файл будет содержать все сборки из этой библиотеки. Prism добавляет порядка 300 Кб к каждому XAP файлу, что может увеличить размер приложения более чем на 1 Мб (при наличии 4-5 XAP файлов). Кроме того, дополнительные библиотеки (в первую очередь UI элементов) могут ещё более увеличить размер приложения.

Все эти факты заставили меня начать поиск пути уменьшения размеров XAP файлов.

Идея

Я работал над одной проблемой, когда наткнулся на заметку в блоге Jeff Prosise. Он упоминал, что сборка может быть добавлена в приложение, но не в XAP файл. Для этого достаточно установить параметр

CopyLocal=false

для каждой требуемой сборки, которая находится в списке References. В этом случае проект будет ссылаться на нужную сборку, но не будет добавлять её в папку bin при компиляции.

Это натолкнуло меня на мысль, что всем дублирующимся сборкам в приложении можно проставить

CopyLocal=false

не изменяя только параметры сборок главного XAP файла. Именно главный XAP файл должен содержать все дублирующиеся сборки, которые будут автоматически загружаться в Application Domain, и будут доступны для всех сборок из остальных XAP файлов.

Read more: Habrahabr.ru

Posted via email from .NET Info