Исключение .NET (TypeLoadException) произошло в модуле - PullRequest
0 голосов
/ 16 марта 2011

У меня есть проект Visual Studio с большим количеством коммерческих DLL-файлов, которые я использую в своей программе. До сих пор я без проблем использовал многие из этих DLL-файлов.

Вчера мне пришлось использовать еще один файл DLL. Я связал файл DLL в качестве ссылки (как обычно), я вижу, что он добавлен в проект, так как завершение кода работает, и я мог успешно построить проект.

Но когда я запускаю это на целевом ПК, я получаю исключение TypeLoadException.

A .NET exception (TypeLoadException) occured in the module

Я пытался поймать и напечатать точную информацию в исключении, но я не помог.

Ниже приводится полное исключение, которое я получаю:

A .NET exception (TypeLoadException) occured in the module LightSwitch\nError message: Could not load type 'Backbone2.LightMode_Status_Ctr_1' from assembly 'Backbone2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.\nThrowing method: DiagModule.SetSwitch\n

(Я не могу выполнить какую-либо отладку и предоставить больше информации, поскольку я строю свой проект как dll, который затем используется на целевом ПК, и на самом деле я могу запустить программу на своем ПК, поскольку в ней отсутствует все необходимое оборудование)

Ответы [ 5 ]

1 голос
/ 28 июня 2011

Спасибо за все ответы, мне удалось найти проблему.Проблема заключалась в том, что проект включал в себя несколько библиотечных файлов (dll) с разными версиями в разных папках.Во время выполнения (все еще не знаю, почему) будет выбран файл dll, и, поскольку файл отличался в разных версиях, некоторые методы отсутствовали.Таким образом, обновление файлов DLL до одной и той же версии во всех папках устранило проблему.

1 голос
/ 16 марта 2011

Проверьте, построена ли dll для той же архитектуры, что и ваш компьютер.Я имею в виду, если ваш компьютер 64-битный, убедитесь, что DLL построен в соответствии с этим и наоборот

0 голосов
/ 16 марта 2011

Проверьте, не ссылаетесь ли вы на одну версию DLL, а во время выполнения загружается другая (из GAC).

0 голосов
/ 16 марта 2011

Запустите FusLogVw.exe - он является частью .Net SDK и может быть запущен из командной строки VS 2010. Настройте ведение журнала для записи всех сбоев. Воспроизведите проблему, обновите представление в окне FusLogVw.exe. Вы должны быть в состоянии найти запись, которая соответствует вашей проблеме, она точно скажет вам, что она делает, и вы сможете понять, как исправить проблему.

0 голосов
/ 16 марта 2011

Убедитесь, что DLL находится в нужном месте (или в GAC) на целевом ПК.

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