我使用PcapDotNet库(https://github.com/PcapDotNet/Pcap.Net/wiki)为专用网络构建特定于协议的远程嗅探器。
我可以在Visual Studio 2017中将DLL包含在C#应用程序中,并且运行正常。应用程序在运行时需要5个PCAP DLL。
问题是当我将应用程序和DLL移动到网络上的另一台主机时;应用程序抛出一个未找到的文件'即使DLL与EXE位于同一文件夹中也是例外。我认为这可能是一个包罗万象的错误代码,而真正的问题是PCAP库中的依赖关系。
我在开发主机和部署主机之间找到的唯一区别是Visual Studio环境。我在开发方面尝试了几个修复程序,包括尝试从源代码重建PCAP库(仍有文件未找到的问题)并针对不同的平台(x86,x64,any),但总是得到相同的结果。有人遇到过这个问题吗?
答案 0 :(得分:0)
一位正在工作的同事找到了解决方案:PcapNet.Core.DLL是用C ++构建的,并且依赖于Visual C ++ Redistributable库。因此,要使PcapDotNet正常工作,必须在目标计算机上安装可再发行组件。 x86版本是使用的版本:
选择vcredist_x64.exe
一旦运行,我的PcapDotNet应用程序运行良好。感谢卑诗省的努力!