Существует куча сборок .net лежащих кучей. В процессе старта приложению необходимо.подгрузить те из них, в которых описаны классы, реализующие определенный интерфейс. Фактически плагины.
Проблема в том, что там еще куча левых библиотек которые никуда не убрать. Еще библиотеки грузящиеся при первом вызове объявленых в них классов. Фактрически все они грузятся сразу. В итоге все это барахло жрет память в огромных количествах.
Как этого избежать? Единственный вариант, котрый вижу — грузить библиотеки в другой домен, проверяь какие нужны, а какие нет. Выгружать домен и грузить нужные... Но как-то это не хорошо...