С# WPF Очень медленный запуск приложения

Я написал простое приложение .net WPF (содержит только 2 маленьких окна), но его запуск слишком медленный - около 10-20 секунд!

Профилер говорит:

  • Main->RunInternal (56%)
  • Main->RunInternal->ctor->LoadBaml (32%)

Большая часть времени загрузки приложения - это тело функции Main->RunInternal, это не моя функция, и я не знаю, что они делают. Может ли их время выполнения каким-то образом оптимизироваться?

Загрузка разметки Baml занимает 32% всех времен, но моя программа имеет всего 3 файла XAML и содержит менее 100 строк кода. Почему это действие длится так долго?

Прежде чем спросить, я прочитал и пробовал эти трюки, но они мне не помогли:

Итак, как я могу ускорить время начала моего приложения?

Спасибо.

PS. Я тестировал эту программу на двух подобных компьютерах, и результат был таким же.

Ответ 1

Посмотрите на статью, упомянутую в комментариях выше.

Я бы предположил, что это 8 (Authenticode), это зависит от того, какие сборки вы ссылаетесь на

Ответ 2

У меня та же проблема. Google с RunInternal ничего мне не дает.

Затем я попытался создать резервную копию моих предыдущих кодов и удалить сборки и файлы, пока не останется только окно.

Затем это сработало - время запуска сократилось с 10 секунд до 1 секунды!

На этот раз профайлер показал только System.Windows.Application.Run() вместо RunInternal

Очень странно, что для этого компьютера, даже после повторного импортирования прослушиваемой (медленной) версии, он работал правильно! в то время как мой ноутбук, который не прошел исправление выше, по-прежнему загружает программу на 10+ секунд.