2017-07-26 56 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

相關問題