Я борюсь с быстрым стартом приложения, которое является смесью .NET и COM.Под холодным стартом я подразумеваю запуск приложения после перезагрузки компьютера (что часто происходит на развернутой платформе Panasonic Toughbooks).
Холодный запуск занимает примерно в 3 раза больше времени, чем теплый запуск (110 секундпротив 35 секунд).
Используя монитор процесса, я определил, что основное различие между холодным и теплым запуском заключается во времени, необходимом для доступа к dll - в основном из GAC, но также из Windows \ microsoft.net инесколько других папок.
Я рассмотрел следующие связанные публикации и фактически реализовал некоторые из предложений:
Результат, похоже, мне нуженполучить либо сборки IL, либо их нативные образы, «предварительно загруженные» в системный кеш.[Я понимаю, что нет гарантии, что они все еще будут там, когда приложение действительно будет запущено, а также, что это, вероятно, увеличит время загрузки.] Согласно некоторым из приведенных выше постов, этот подход используется Acrobat Reader и Microsoft Office.
Моя сложность заключается в том, что используемые сторонние библиотеки очень велики, поэтому нецелесообразно предварительно загружать все типы в все ссылочных сборок.Я просто хочу загрузить типы, которые на самом деле загружаются во время запуска приложения.Итак, как мне определить только эти типы и содержащие их сборки?
Другой подход, который я рассматриваю, заключается в том, чтобы каким-то образом запустить (и впоследствии уничтожить) приложение в «фоновом режиме», но не уверен, что это можно сделать сприложение для Windows.
Спасибо за любые предложения.