2017-07-26 112 views
0

我正在使用PcapDotNet库(https://github.com/PcapDotNet/Pcap.Net/wiki)为专用网络构建协议特定的远程嗅探器。PcapDotNet只能在开发机器上运行

我可以在Visual Studio 2017中的C#应用​​程序中包含DLL,它运行良好。运行时应用程序需要5个PCAP DLL。

问题是当我将应用程序和DLL移动到网络上的另一个主机时;即使DLL与EXE位于同一文件夹中,该应用程序也会抛出'文件未找到'异常。我认为这可能是一个全面的错误代码,真正的问题在于PCAP库内的依赖关系。

我可以在开发主机和部署主机之间找到唯一的区别是Visual Studio环境。我在开发方面尝试了一些修复,包括尝试从源重建PCAP库(仍然存在文件未找到的问题)并针对不同的平台(x86,x64,any),但始终得到相同的结果。有没有人遇到这个问题?

+0

我无法专门讲述PCapDotNet,但可以使用[Fusion Log Viewer](https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log - 查看器)查看程序集绑定错误。它可以帮助您确定哪个装配失败。 –

回答

0

一位同事在工作中发现了这样的解决方案:PcapNet.Core.DLL用C++构建,并且对Visual C++ Redistributable库具有依赖性。因此,为了使PcapDotNet正常工作,您必须在目标机器上安装可再发行组件。 x86版本是一个使用方法:

选择vcredist_x64.exe

一旦被运行,我PcapDotNet应用工作的罚款。感谢BC为你的努力!

+0

这与指示说的不同吗? https://github.com/PcapDotNet/Pcap.Net/wiki/Using-Pcap.Net-in-your-programs – brickner

相关问题