【问题标题】:Pcap .NET library: PcapDotNet.Core.DLL not foundPcap .NET 库:找不到 PcapDotNet.Core.DLL
【发布时间】: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 文件夹中,但均无济于事。

有人可以帮忙吗?该库是我们为系统故障排除而设计的一些基本网络测试的核心。

【问题讨论】:

    标签: c# windows service pcap.net


    【解决方案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
    

    现在应用程序运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-15
      • 2010-12-10
      • 2013-08-02
      • 1970-01-01
      • 2012-06-23
      • 2019-05-02
      • 2012-06-24
      • 2018-08-31
      相关资源
      最近更新 更多