Наши клиентские приложения на C # всегда загружаются намного быстрее при первом запуске. Я не зашел так далеко, чтобы проверить, является ли первый запуск любого .NET-приложения более медленным или же первый запуск каждого .NET-приложения медленнее, но это остается проблемой в любом случае. Как мы можем устранить этот одноразовый удар при запуске?
Вначале я думал, что какой-то сервис может "разогреть" библиотеки. Нужно ли нам делать это для каждого из наших приложений или только для любого приложения .NET? Будет ли пользователь, который запускает службу, иметь значение? Возможно, вместо службы Windows, приложение, которое запускается при входе в Windows, может выполнить грязную работу? Опять же, будет ли достаточно того, что это сервис .NET, или нам придется запускать каждую из наших программ, чтобы устранить штраф? Мы можем передать параметр командной строки, который сообщит программе о немедленном выходе, но будет ли этого достаточно, или нам потребуется .NET для загрузки каждой сборки, которую мы будем использовать во время нормального выполнения приложения?
Re: В некоторых ответах мы развертываем библиотеки DLL в режиме релиза, и замедление происходит только при первом запуске. Мы максимально откладываем инициализацию классов.