Как я могу показать сообщение об ошибке при попытке запустить исполняемый файл без его DLL? - PullRequest
0 голосов
/ 02 декабря 2009

У меня есть приложение на C #, к которому добавлена ​​dll по ссылке. Когда я пытаюсь запустить exe-файл из Windows (после компиляции) и dll переименовывается, я хочу, чтобы приложение показывало сообщение об ошибке.

Как я могу сделать это в коде?

Ответы [ 3 ]

3 голосов
/ 02 декабря 2009

Если исполняемый файл не может найти требуемые библиотеки, он уже должен отображать ошибку. Что-то вроде:

Программа не может запуститься, потому что example.dll отсутствует на вашем компьютере. Попробуйте переустановить программу, чтобы решить эту проблему.

Тот факт, что вы не получаете это, подразумевает одну из нескольких вещей:

a) На самом деле dll не указана вашей программой.

b) Вы связали dll в exe.

c) DLL была найдена в другом месте CLR (спасибо Pondidum)

1 голос
/ 02 декабря 2009

Также возможно, что ваш exe найдет нужную сборку где-нибудь еще. Чтобы проверить, где искать необходимую сборку, прочитайте эту статью на MSDN .

Другой возможностью было бы использование событий AssemblyLoad или AssemblyResolve для получения дополнительной информации о том, какие сборки загружены (не).

1 голос
/ 02 декабря 2009

В приложении .NET вы не получите сообщение об ошибке, пока в первый раз не попробуете использовать класс в отсутствующей DLL.

Пара возможностей:

  • Написать код, который запускается при запуске программы и вызывает фиктивные методы для одного класса в каждой DLL
  • Рекурсивно вызовите Assembly.GetReferencedAssemblies () и создайте список отсутствующих DLL
...