XamlCombine
Данная утилита:
- считывает список словарей, которые надо объединить из файла;
- загружает ресурсы из этих словарей;
- собирает список используемых namespace-ов и удаляет повторяющиеся;
- сортирует загруженные ресурсы в порядке их использования (т.е. первыми окажутся те ресурсы, которые будут использоваться последующими);
- заменяет DynamicResource на StaticResource;
- сохраняет полученный словарь ресурсов в файл.
Командная строка, для работы с утилитой:
XamlCombine.exe list-of-xamls.txt result-xaml.xaml
Где:
- list-of-xamls.txt - текстовый файл содержащий список xaml-овых словарей, которые необходимо объеденить,
- result-xaml.xaml - имя результирующего xaml файла.
Я предпочёл использовать один большой xaml, а не набор смерженых (merged), потому что:
- при использовании одного xaml-а увеличивается скорость загрузки приложения и уменьшается кол-во занимаемой памяти;
- в едином xaml-е можно использовать StaticResource заместо DynamicResource, что также даёт прирост производительности;
- нет проблем с Generic.xaml для библиотек с lookless контролами.
В ближайшее время планируется:
- ввести возможность отключения замены DynamicResource на StaticResource;
- ввести возможность отключения сортировки ресурсов;
- ввести поддержку включения merged словарей (в данной версии они удаляются).
Страница проекта на CodePlex-е.