Можно ли предварительно загрузить библиотеки DLL или сборки для Process.Start ("AppWithLongDllLoadingTime.exe"); - PullRequest
0 голосов
/ 13 февраля 2020

Мы используем приложение командной строки (назовем его «AppWithLongDllLoadingTime.exe»). Это приложение вызывается из приложения C#:

        var processStartInfo = new ProcessStartInfo
        {
            UseShellExecute = false,
            CreateNoWindow = true,
            FileName = "path\AppWithLongDllLoadingTime.exe"
            Arguments = "-v -t xyz ..."
        };

        var process = new Process
        {
            StartInfo = processStartInfo
        };

        process.Start();
        bool processExitWithoutTimeout = process.WaitForExit(30000);//wait 30 sec. for exit

«AppWithLongDllLoadingTime.exe» зависит приблизительно от 100 библиотек DLL. Поэтому инициализация процесса занимает около 3-5 секунд.

Итак, мой вопрос: «Есть ли способ предварительно загрузить библиотеки DLL перед выполнением?»

(я думал об использовании ILMerge , но я не уверен, дает ли это вообще какое-либо преимущество)

И кто-нибудь знает, почему второй раз вызывается "AppWithLongDllLoadingTime.exe" из того же все еще работающего C# приложения , быстрее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...