我已经在VS 2008中成功构建并测试了一个使用由另一个开发人员构建的dll(abcTest.dll)的vb.net应用程序。但是,当我将应用程序部署到另一台机器(Release目录内容)时,运行可执行文件时出现“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,因为它无法找到它而且我不清楚为什么。
答案 0 :(得分:1)
它因Windows错误而死亡,14001 = ERROR_SXS_CANT_GEN_ACTCTX,“应用程序无法启动,因为它的并排配置不正确。请参阅应用程序事件日志以获取更多详细信息。”
在Windows事件日志中查找导致问题的清单条目。这通常是由于未在目标计算机上安装的非托管C / C ++运行时DLL依赖性。还要确保dev没有为你提供他的DLL的Debug版本。