Распространение приложения VB.NET ... Что вызывает исключение System.DllNotFoundException - PullRequest
1 голос
/ 09 марта 2010

Я успешно создал и протестировал приложение vb.net в VS 2008, которое использует dll (abcTest.dll), созданное другим разработчиком. Однако при развертывании приложения на другом компьютере (выпуск содержимого каталога) при запуске исполняемого файла появляется «System.DllNotFoundException». DLL находится в том же каталоге, что и исполняемый файл, и т. Д. Решение имеет dll в качестве «элемента решения», поэтому, похоже, что ссылка в порядке. Вот фактическая ошибка, которую я вижу:

************** Exception Text **************
System.DllNotFoundException: Unable to load DLL 'abcTest.dll': This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)
   at AbcCoreInterface.AbcCoreInterface.AbcOpenMap(String filename, UInt32& mapHandle)
   at AbcMapControl.AbcMapControl.Open(String fileName) in C:\dev\ACME\AbcMapControl\AbcMapControl\AbcMapControl.cs:line 508
   at VisualBasicMapTest.Form1.Form1_Load(Object sender, EventArgs e) in C:\dev\ACME\VBMapTest\VisualBasicMapTest\Form1.vb:line 39
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.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)

По сути, кажется, что он не может загрузить DLL, потому что не может найти его, и я не понимаю, почему.

1 Ответ

1 голос
/ 09 марта 2010

Он умирает из-за ошибки Windows, 14001 = ERROR_SXS_CANT_GEN_ACTCTX, «Приложение не удалось запустить, поскольку его параллельная конфигурация неверна. Для получения более подробной информации см. Журнал событий приложения.»

Найдите в журнале событий Windows запись манифеста, которая вызывает проблему. Обычно это происходит из-за неуправляемой зависимости DLL времени выполнения C / C ++, которая не была установлена ​​на целевой машине. Также убедитесь, что разработчик не дал вам отладочную сборку своей DLL.

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