2017-07-26 21 views
0

私はPcapDotNetライブラリ(https://github.com/PcapDotNet/Pcap.Net/wiki)を使用して、プライベートネットワーク用のプロトコル固有のリモートスニッファを構築しています。PcapDotNetは開発マシン上でのみ動作します

Visual Studio 2017にC#アプリケーションでDLLを含めることができ、うまく動作します。実行時にアプリケーションに必要なPCAP DLLは5つあります。

問題は、アプリケーションとDLLをネットワーク上の別のホストに移動するときです。 DLLがEXEと同じフォルダにあっても、アプリケーションは「ファイルが見つかりません」例外をスローします。私はこれがcatch-allエラーコードであり、本当の問題は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)を使うことができます。 -viewer)を使用して、アセンブリのバインディングエラーを表示します。どのアセンブリが故障しているかを判断するのに役立ちます。 –

答えて

0

職場の同僚がこの解決策を見つけました。PcapNet.Core.DLLはC++でビルドされており、Visual C++ Redistributableライブラリに依存しています。したがって、PcapDotNetを動作させるには、ターゲットマシンに再配布可能ファイルをインストールする必要があります。 x86バージョンは、使用するものです。これが実行された後は

vcredist_x86.exeを

、私PcapDotNetアプリケーションがうまく働きました。あなたの努力のためにBCありがとう!

+0

これは指示とは異なるのですか? https://github.com/PcapDotNet/Pcap.Net/wiki/Using-Pcap.Net-in-your-programs – brickner

関連する問題