Pcap .NET 库:找不到 PcapDotNet.Core.DLL
Posted
技术标签:
【中文标题】Pcap .NET 库:找不到 PcapDotNet.Core.DLL【英文标题】:Pcap .NET library: PcapDotNet.Core.DLL not found 【发布时间】:2019-02-09 23:44:33 【问题描述】:使用来自 Github (https://github.com/PcapDotNet/Pcap.Net/wiki/Using-Pcap.Net-in-your-programs) 的 PcapDotNet 库,我构建了一个 Windows 服务,它允许远程网络嗅探以进行通信网络故障排除。部署后服务无法启动。
在启动时,Windows 事件日志显示:
Service cannot be started. System.IO.FileNotFoundException: Could not load file or assembly 'PcapDotNet.Core.dll' or one of its dependencies. The specified module could not be found.
File name: 'PcapDotNet.Core.dll' at NewPcapService.svcPcapServer.ServiceStart
按照上面 pcapDotNet wiki 页面中的指南,我在发布模式下构建了项目,并安装了所有推荐的可再发行包。
“缺失”文件 PcapDotNet.Core.dll 与其他 3 个 PcapDotNet DLL 位于与服务 EXE 相同的文件夹中。
我还将所有 4 个 DLL 的副本放在 Windows 和 Windows\System32 文件夹中,但均无济于事。
有人可以帮忙吗?该库是我们为系统故障排除而设计的一些基本网络测试的核心。
【问题讨论】:
【参考方案1】:请注意,文件可能不是“丢失”,但“其依赖项之一”可能是。
这基本上是Pcap.Net FAQ中的第6题。
请确保您按照Using-Pcap.Net-in-your-programs guide 中的所有步骤操作,因为它很可能会解决您的问题,就像之前为几个人所做的那样。
【讨论】:
“按照上面 pcapDotNet wiki 页面中的指南,我在发布模式下构建了项目,并安装了所有推荐的可再发行包。”另外我应该提到,该服务在我的开发机器上运行良好,但在目标主机上不起作用。现在我正在调查不同 .NET Framework 或 32/64 位目标的问题。【参考方案2】:虽然(我认为)我遵循了 Using-Pcap.Net-in-your-programs guide 中的建议,但我仍然缺少 x86 的可再发行包。我跳过了它,因为目标主机是 64 位机器。
为简单起见,我通过命令行安装了所有推荐的 VC++ 包:
vcredist_x86_2010.exe /passive /norestart
vcredist_x64_2010.exe /passive /norestart
vcredist_x86_2013.exe /install /passive /norestart
vcredist_x64_2013.exe /install /passive /norestart
现在应用程序运行良好。
【讨论】:
以上是关于Pcap .NET 库:找不到 PcapDotNet.Core.DLL的主要内容,如果未能解决你的问题,请参考以下文章
第三方 dll 在 ASP.NET MVC 项目中找不到它的依赖项