2010-12-04 8 views
1

У меня есть небольшое приложение winforms, в котором используется около 20 внешних DLL. Как я могу проверить все их существование, при инициализации приложений? сказать: «У вас нет dll, установите его корректно».. Проверка зависимостей dll dll

+1

Не проверяйте себя, CLR уже делает это за вас. И громко жалуется, когда один из них отсутствует. Это не нуждается в вашей помощи. – 2010-12-04 23:54:10

ответ

0

Если какая-либо из необходимых сборок отсутствует, приложение может быть даже не загружено CLR. Таким образом, вы можете написать приложение-загрузчик, которое выполнит задачу проверки наличия необходимых сборок и если они существуют Process.Start основное приложение.

+0

так. его запуск. но некоторые функции терпят неудачу. – eba 2010-12-04 23:16:18

0

Если вы используете архитектуру в стиле плагинов, вы можете разрешить все свои зависимости в конце - по требованию даже - и вы можете контролировать, что произойдет, если зависимость не может быть разрешена.

Это не должно быть сложно - см., Например, this simple approach.

1

Вам необходимо пройти все пользовательские типы (используя отражения), используемые в вашем приложении, и попытаться создать экземпляр каждого из них. Конечно, в try/catch. Затем у вас есть catch на FileNotFoundException и сообщите об этом пользователю, если некоторые библиотеки отсутствуют.

Когда вы создаете экземпляр типов, используемых в вашем приложении, AppDomain загружает необходимые библиотеки (поэтому он будет генерировать исключение, если файл не найден).

Я думаю, что это поможет.