Почему мое приложение .NET пытается загрузить несвязанные файлы DLL?(Первый шанс System.BadImageFormatException в отладочном выводе) - PullRequest
1 голос
/ 10 февраля 2011

Во время отладки я заметил следующее с этим приложением C #, которое у меня здесь:

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

Приложение загружается и работает нормально, однако я нахожу вывод отладки странным: (пути пропущены)

...
A first chance exception of type 'System.BadImageFormatException' occurred in mscorlib.dll
'my_test.exe': Loaded '....\release\mfc42u.dll', Symbols loaded (source information stripped).
'my_test.exe': Unloaded '....\release\mfc42u.dll'
A first chance exception of type 'System.BadImageFormatException' occurred in mscorlib.dll
'my_test.exe': Loaded '....\release\mpiwin32.dll', Binary was not built with debug information.
'my_test.exe': Unloaded '....\release\mpiwin32.dll'
A first chance exception of type 'System.BadImageFormatException' occurred in mscorlib.dll
...

Две вышеупомянутые DLL не имеют абсолютно никакого отношения к проекту C # или чему-либо, на что он ссылается. Почему исполняемый файл (или отладчик VS?) Пытается загрузить эти DLL?

1 Ответ

2 голосов
/ 10 февраля 2011

Похоже, это приложение активно загружает эти библиотеки DLL!

Этот код, который я нашел в компоненте, с которым я не был знаком:

...
foreach (FileInfo file in dirInfo.GetFiles())
{
...
  try
  {
    Assembly ass = Assembly.LoadFrom(file.FullName);
...
  catch (Exception)
  {
    // Ignore all errors caught due to the .NET framework not being able to load an assembly.
    // Not all qualifying files in the specified directories really are valid .NET assemblies.
  }
...

Комментарий 0xA3 о том, что я получил исключение 1-го шанса, поставил меня на правильный путь!

...