使用来自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相同的文件夹中。
我还在Windows和Windows \ System32文件夹中放了所有4个DLL的副本,但都无济于事。
有人可以帮忙吗?该库是我们为系统故障排除而设计的一些重要网络测试的核心。
请注意,该文件可能不会“丢失”,但可能是“其中一个依赖项”。
这基本上是Pcap.Net FAQ中的问题6。
请确保您遵循Using-Pcap.Net-in-your-programs guide中的所有步骤,因为它最有可能解决您的问题,就像之前为几个人所做的那样。
虽然(我认为)我遵循了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
现在应用程序工作正常。