C# 无法加载文件或程序集';XXXX.dll';或者它的一个依赖项。找不到指定的模块
我有一个直接引用dll文件的应用程序:C# 无法加载文件或程序集';XXXX.dll';或者它的一个依赖项。找不到指定的模块,c#,dll,C#,Dll,我有一个直接引用dll文件的应用程序:POSLink.dll 为了在我的本地机器上运行,我必须手动将以下dll复制到输出目录:libea32.dll和ssleay32.dll 当我在本地机器上运行应用程序时,它会成功 在目标计算机上运行应用程序时,出现以下错误: 未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“POSLink.dll”或其依赖项之一。找不到指定的模块。 位于FileNotFoundExceptionExample.Program
POSLink.dll
为了在我的本地机器上运行,我必须手动将以下dll复制到输出目录:libea32.dll
和ssleay32.dll
当我在本地机器上运行应用程序时,它会成功
在目标计算机上运行应用程序时,出现以下错误:
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“POSLink.dll”或其依赖项之一。找不到指定的模块。位于FileNotFoundExceptionExample.Program.Main(字符串[]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上使用它,但这对我来说不是很有用,因为有381个错误出现,当我在成功的机器上运行它时也会出现
我该如何开始对此错误进行故障排除
当我运行Fuision日志查看器,然后在目标计算机上运行应用程序时,我会得到以下日志: *装配活页夹日志条目(2016年7月19日下午2:18:48)* 手术是成功的。绑定结果:hr=0x0。操作
已成功完成 从加载的程序集管理器:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll运行于
可执行文件
C:\Users\employed\Desktop\notfoundexceptionexample\debug\FileNotFoundExceptionExample.exe
---下面是详细的错误日志 ===预绑定状态信息===日志:DisplayName=POSLink,版本=1.0.5773.36725,区域性=中性,
PublicKeyToken=f3876d2e4b7eb819(完全指定)日志:Appbase=
file:///C:/Users/Omitted/Desktop/notfoundexceptionexample/debug/ 日志:
初始PrivatePath=NULL LOG:Dynamic Base=NULL LOG:Cache Base=
空日志:AppName=FileNotFoundExceptionExample.exe调用程序集
:FileNotFoundExceptionExample,版本=1.0.0.0,区域性=中性,
PublicKeyToken=null。
==日志:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:
C:\Users\employed\Desktop\notfoundexceptionexample\debug\FileNotFoundExceptionExample.exe.Config
日志:使用主机配置文件:日志:使用计算机配置
文件来自
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
日志:发布策略参考:POSLink,版本=1.0.5773.36725,
区域性=中性,PublicKeyToken=f3876d2e4b7eb819日志:GAC查找为
不成功的日志:正在尝试下载新URL
file:///C:/Users/Omitted/Desktop/notfoundexceptionexample/debug/POSLink.DLL.
日志:程序集下载成功。正在尝试设置文件:
C:\Users\employed\Desktop\notfoundexceptionexample\debug\POSLink.dll
日志:进入从源代码运行安装阶段。日志:程序集名称为:
POSLink,版本=1.0.5773.36725,文化=中性,
PublicKeyToken=f3876d2e4b7eb819日志:绑定成功。返回值
从
C:\Users\employed\Desktop\notfoundexceptionexample\debug\POSLink.dll。
日志:在默认加载上下文中加载程序集
因此,事实证明,有一种方法可以过滤掉dependency walker告诉您的所有不重要的错误
日志是在此屏幕截图中选择的中间窗口 事实证明,msvcr120.dll确实是缺少的,找到了一个合适的msvcr120.dll,并将其放到我的输出目录中修复了问题 注意:。正确的解决方案不是手动复制DLL,而是安装
查看Fusion日志查看器是否提供了更多信息(请确保以管理员身份运行)。它应该向您显示它为尝试定位DLL及其依赖项而探测的特定路径。您的
在哪里使用System.IO
还要确保在项目的“引用”节点中,您还手动为POSLink
添加了必要的dll您是否在exe目录中找到了所有dll,或者您是否引用了GAC中的dll?如果这是第三方dll。还要确保CopyLocal
属性设置为true
,然后在部署应用程序时,确保将bin文件夹中的所有.dll及其相应的.config.exe文件和实际的.exe文件复制到目标位置。@JeroenHeier它们位于exe目录中