Подтвердить что ты не робот

Не удалось загрузить файл или сборку "***. Dll" или одну из ее зависимостей

У меня есть эта dll, которую я создал давно и использую для подключения к db определенного программного обеспечения, для которого я разрабатываю. У меня не было проблем более четырех лет и бесчисленных приложений с этой DLL.

Попытка развернуть мое последнее создание, я получаю следующую ошибку:

System.IO.FileNotFoundException: Could not load file or assembly '***.dll' or one of its dependencies. The specified module could not be found.

Итак, для каждой dll, которую я когда-либо писал, я всегда делал приложение простых форм для тестирования этой DLL как раз сам. Запуск этого простого приложения дало ту же ошибку. DLL не загружает и не использует ничего, кроме: System, System.Data, System.XML. Так что, насколько это возможно, я не вижу ничего плохого.

Кстати, все работает на dev-станции. Проблема ограничена станциями развертывания..Net и необходимые перераспределители, так как я все делаю на С++, развернуты и работают.

Запуск FUSLOGVW.exe показал, что все работает нормально.

Запуск depend.exe сказал: Предупреждение: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в зависимом от задержки модуле.

Я уже пробовал переписывать все это. Это дало те же результаты.

Кто-нибудь узнает?

редактирует

Вот общее сообщение об ошибке:

See the end of this message for details on invoking \"
just-in-time (JIT) debugging instead of this dialog box.\"

************** Exception Text **************\"
System.IO.FileNotFoundException: Could not load file or assembly 'connectionTo.dll' or one of its dependencies. The specified module could not be found.\"
File name: 'connectionToJobboss32.dll'\"
   at TESTConnection.Form1.button1_Click(Object sender, EventArgs e)\"
   at System.Windows.Forms.Control.OnClick(EventArgs e)\"
   at System.Windows.Forms.Button.OnClick(EventArgs e)\"
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)\"
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\"
   at System.Windows.Forms.Control.WndProc(Message& m)\"
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)\"
   at System.Windows.Forms.Button.WndProc(Message& m)\"
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\"
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\"
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)\"
\"



************** Loaded Assemblies **************\"
mscorlib\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)\"
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll\"
----------------------------------------\"
TESTConnection\"
    Assembly Version: 1.0.3996.18980\"
    Win32 Version: \"
    CodeBase: file:///C:/Program%20Files%20(x86)/conn/TESTConnection.exe\"
----------------------------------------\"
System.Windows.Forms\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll\"
----------------------------------------\"
System.Drawing\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll\"
----------------------------------------\"
System\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll\"
----------------------------------------\"

В средстве просмотра событий нет ошибок.

4b9b3361

Ответ 1

или одна из его зависимостей

В обычной ситуации вы не видите отсутствующую неуправляемую DLL с Fuslogvw.exe. Лучше всего запустить программу SysInternals ProcMon. Вы увидите, что он ищет DLL и не находит его. Режим профиля в Dependency Walker также может отображать его.

Ответ 2

У меня была такая же проблема с dll вчера, и все, на что он ссылался, это System, System.Data и System.Xml. Оказывается, конфигурация сборки для типа платформы не выстраивалась в линию. DLL была построена для x86, а программа, использующая его, была "Any CPU", и поскольку я запускаю машину x64, она запускала программу как x64 и имела проблемы с dll x86. Я не знаю, является ли это вашей проблемой или нет, просто подумал, что я бы назвал это чем-то еще, чтобы проверить.

Ответ 3

У меня была та же проблема. Для меня это было вызвано настройками по умолчанию на локальном сервере IIS на моей машине. Таким образом, простой способ исправить это - использовать встроенный сервер разработки Visual Studio:)

Новые версии IIS на машинах x64 имеют параметр, который не позволяет запускать 32-разрядные приложения по умолчанию. Чтобы включить 32-разрядные приложения в локальном IIS, выберите соответствующий пул приложений в диспетчере IIS, нажмите "Дополнительные настройки" и измените "Включить 32-разрядные приложения" с False на True

Ответ 4

Я столкнулся с этим недавно. Оказалось, что старая DLL была скомпилирована с предыдущей версией (Visual Studio 2008) и ссылалась на эту версию динамических библиотек времени исполнения. Я пытался запустить его в системе, на которой был только .NET 4.0, и я никогда не устанавливал динамические библиотеки времени исполнения. Решение? Я перекомпилировал DLL для связывания статических библиотек времени выполнения.

Проверьте журнал ошибок приложений в средстве просмотра событий (EVENTVWR.EXE). Он даст вам больше информации об ошибке и, вероятно, укажет вам на истинную причину проблемы.

Ответ 5

Недавно я столкнулся с этой проблемой, приложение будет отлично работать на машинах разработчика и выбирать другие машины, но не на недавно установленных компьютерах. Оказалось, что на машинах, на которых он работал, был установлен Runtime Visual С++ 11, в то время как только что установленные машины не были. Добавление Visual С++ 11 Runtime, распространяемое в установщик приложений, устраняет проблему...

Ответ 6

Этот ответ абсолютно не связан с ситуацией OP, и это очень маловероятный сценарий для кого-то еще, но на всякий случай это может помочь кому-то...

В моем случае я получал "Не удалось загрузить файл или сборку" System.Windows.Forms, Version = 4.0.0.0... ", потому что я разобрал и повторно собрал программу, используя ILDAsm.exe и ILAsm.exe. Версия Net Framework/SDK 2. Переключение на ILDAsm.exe и ILAsm.exe из .Net Framework/SDK версии 4 устранило проблему.

(Как ни странно, хотя делать то, что я сделал, может показаться очевидной ошибкой, полученный EXE файл, который не работал, указывает на то, что он нацелился на .Net 4 при проверке с помощью JetBrains dotPeek.)

Ответ 7

У меня была такая же проблема - DLL работала все время, потом мой компьютер разбился, а потом у меня возникла проблема "не удалось загрузить файл или сборку... dll"

Два возможных решения: когда компьютер разбился, могут быть некоторые несогласованные файлы в

C:\Users\<yourUserName>\AppData\Local\Temp\Temporary ASP.NET Files

Удаление этой папки, перекомпиляция и ошибка исчезла.

Как только мне пришлось удалить папку с папками (я прочитал это где-то еще). Разрешить Visual Studio/nuget устанавливать отсутствующие пакеты (или вручную переустанавливать), а затем все будет хорошо.

Ответ 8

1) Скопируйте DLL из "Externals\ffmpeg\bin" в каталог вывода проекта (где исполняемый файл остается); 2) Убедитесь, что ваш проект построен для целевой цели x86 (работает в 32-битном режиме).

Следуйте этой теме для более

Ответ 9

Более простой способ определить, какие зависимости принадлежит родной DLL, - использовать Dependency Walker - http://www.dependencywalker.com/

Я проанализировал собственную DLL и обнаружил, что это зависит от MSVCR120.DLL и MSVCP120.DLL, оба из которых не были установлены на моем промежуточном сервере в каталоге System32. Я установил среду выполнения С++ на моем промежуточном сервере, и проблема была решена.