не удается поймать отсутствующий DLL файл (VB.NET VS2019)

#vb.net #dll

Вопрос:

У меня есть программа, которая использует несколько DLL-файлов. Большинство из них из источника nuget. Я проверял (в main_Load()), присутствуют ли dll-файлы локально, и в случае отсутствия dll-файлов я загружаю их с собственного веб-сервера. Это прекрасно работает. Теперь я добавил ссылку на пользовательский DLL-файл (потому что эти функции должны быть разделены между серверальными программами нескольких разработчиков). Однако я не смог проверить наличие этой библиотеки DLL. Еще до запуска программы я получаю ошибку .NET Framework: исключение System.IO.FileNotFoundException

Есть какие-нибудь предложения?

Комментарии:

1. Метод Main() должен быть установлен перед запуском вашей программы. Похоже, что его код использует эту пользовательскую библиотеку DLL, поэтому программа завершается неудачей с неуловимым исключением, прежде чем она сможет начать работу. Вам придется выполнить рефакторинг Main (), чтобы он вам не понадобился, и выполнить только проверку файлов, переместив остальную часть кода в отдельный вспомогательный метод, который вы вызываете из Main(). Дайте ему [MethodImpl(MethodImplOptions. NoInlining)] атрибут, чтобы быть уверенным.

2. Спасибо, Ганс, жаль, что Microsoft выбросила это исключение. Этого было достаточно, чтобы разделить вызов функции DLL на отдельную подсистему, которую я вызываю из main_load. Теперь я могу проверить и загрузить отсутствующий DLL-файл.