正在分发VB.NET应用程序…是什么导致System.DllNotFoundException
我已经在VS2008中成功构建并测试了一个vb.net应用程序,它使用了另一个开发人员构建的dll(abcTest.dll)。但是,当我将应用程序部署到另一台计算机(发布目录内容)时,当我运行可执行文件时,会得到“System.DllNotFoundException”。dll与可执行文件等位于同一目录中。解决方案将dll作为“解决方案项”使用,因此它似乎是可以引用的。以下是我看到的实际错误:正在分发VB.NET应用程序…是什么导致System.DllNotFoundException,.net,vb.net,visual-studio-2008,.net,Vb.net,Visual Studio 2008,我已经在VS2008中成功构建并测试了一个vb.net应用程序,它使用了另一个开发人员构建的dll(abcTest.dll)。但是,当我将应用程序部署到另一台计算机(发布目录内容)时,当我运行可执行文件时,会得到“System.DllNotFoundException”。dll与可执行文件等位于同一目录中。解决方案将dll作为“解决方案项”使用,因此它似乎是可以引用的。以下是我看到的实际错误: ************** Exception Text ************** System
************** 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,因为它找不到它,我也不清楚原因。它因Windows错误而死亡,14001=error\u SXS\u CANT\u GEN\u ACTCTX,“应用程序无法启动,因为它的并排配置不正确。有关详细信息,请参阅应用程序事件日志。”
在Windows事件日志中查找导致问题的清单条目。这通常是由于目标计算机上未安装非托管C/C++运行时DLL依赖项造成的。另外,请确保开发人员没有向您提供其DLL的调试版本。由于Windows错误,14001=error\u SXS\u CANT\u GEN\u ACTCTX,“应用程序无法启动,因为其并排配置不正确。有关详细信息,请参阅应用程序事件日志。”
在Windows事件日志中查找导致问题的清单条目。这通常是由于目标计算机上未安装非托管C/C++运行时DLL依赖项造成的。还要确保开发人员没有向您提供其DLL的调试版本。我如何知道这是否是DLL的调试版本?有什么我可以运行dll来告诉你的吗?你可以通过查看事件日志来知道。是吗?我怎么知道这是dll的调试版本?有什么我可以运行dll来告诉你的吗?你可以通过查看事件日志来知道。是吗?