![](/img/trans.png)
[英]Could not load file or assembly 'xxx.dll' or one of its dependencies. The specified module could not be found
[英]Could not load file or assembly 'XXXX.dll' or one of its dependencies. The specified module could not be found
我有一个直接引用dll文件的应用程序: POSLink.dll
。
为了libea32.dll
在我的本地计算机上运行,我必须手动将以下dll复制到输出目录: libea32.dll
和ssleay32.dll
。
当我在本地计算机上运行该应用程序时,它会成功。
在目标计算机上运行应用程序时,出现以下错误:
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集POSLink.dll或其依赖项之一。 指定的模块无法找到。
在FileNotFoundExceptionExample.Program.Main(String [] args)
这是我的SSCCE
using POSLink;
using System;
namespace FileNotFoundExceptionExample
{
class Program
{
static void Main(string[] args)
{
// this is stuff found in the POSLink namespace
var commSetting = new CommSetting();
commSetting.saveFile();
Console.WriteLine("Success");
}
}
}
我尝试在POSLink.dll上使用Dependency Walker ,但这对我不是很有用,因为会显示381个错误,并且当我在成功的计算机上运行它时也会显示这些错误。
我什至如何开始排除此错误?
当我运行Fuision日志查看器,然后在目标计算机上运行该应用程序时,我得到以下日志:
*装配活页夹日志条目(7/19/2016 @ 2:18:48 PM)*
操作成功。 绑定结果:HR =为0x0。 手术
成功完成。程序集管理器从以下位置加载:
C:\\ Windows \\ Microsoft.NET \\ Framework \\ v4.0.30319 \\ clr.dll在
可执行
C:\\ Users \\ Omitted \\ Desktop \\ notfoundexceptionexample \\ debug \\ FileNotFoundExceptionExample.exe
---详细的错误日志如下。===预绑定状态信息===日志:DisplayName = POSLink,版本= 1.0.5773.36725,文化=中性,
PublicKeyToken = f3876d2e4b7eb819(完全指定)LOG:Appbase =
文件:/// C:/用户/省略/桌面/ notfoundexceptionexample /调试/日志:
初始PrivatePath =空日志:动态基础=空日志:缓存基础=
NULL日志:AppName = FileNotFoundExceptionExample.exe调用程序集
:FileNotFoundExceptionExample,版本= 1.0.0.0,区域性=中性,
公钥=空。
=== LOG:此绑定在默认加载上下文中启动。 日志:使用应用程序配置文件:
C:\\ Users \\用户略\\桌面\\ notfoundexceptionexample \\调试\\ FileNotFoundExceptionExample.exe.Config
日志:使用主机配置文件:日志:使用机器配置
来自的文件
C:\\ WINDOWS \\ Microsoft.NET \\框架\\ v4.0.30319 \\ CONFIG \\ machine.config中。
日志:政策后参考:POSLink,版本= 1.0.5773.36725,
文化=中性,PublicKeyToken = f3876d2e4b7eb819日志:GAC查找为
不成功。 日志:尝试下载新的URL
文件:/// C:/Users/Omitted/Desktop/notfoundexceptionexample/debug/POSLink.DLL。
日志:程序集下载成功。 尝试设置文件:
C:\\ Users \\用户略\\桌面\\ notfoundexceptionexample \\调试\\ POSLink.dll
日志:进入从源运行设置阶段。 日志:程序集名称是:
POSLink,版本= 1.0.5773.36725,文化=中性,
PublicKeyToken = f3876d2e4b7eb819日志:绑定成功。 返回
从组装
C:\\ Users \\用户略\\桌面\\ notfoundexceptionexample \\调试\\ POSLink.dll。
日志:程序集在默认加载上下文中加载。
因此,事实证明,有一种方法可以过滤掉依赖行者告诉您的所有不重要的错误。
坦白说,我以前没有尝试过这个感到很尴尬。 根据我假设日志的布局方式,我只是假设错误的数量是相同的。
日志是在此屏幕截图中选择的中间窗口。
事实证明,确实缺少了msvcr120.dll,找到了一个合适的文件,然后将其放入我的输出目录中,从而解决了该问题。
注意: msvcr120.dll是Visual C ++ 2013运行时 。 正确的解决方案是安装Visual Studio 2013的Visual C ++可再发行组件包,而不是手动复制dll。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.