PcapDotNet работает только на машине разработки

Я использую библиотеку PcapDotNet (https://github.com/PcapDotNet/Pcap.Net/wiki) для создания удаленного анализатора протоколов для частной сети.

Я могу включить библиотеки DLL в Visual Studio 2017 в приложение C#, и оно работает нормально. Для приложения во время выполнения требуется 5 библиотек DLL PCAP.

Проблема в том, что когда я перемещаю приложение и библиотеки DLL на другой хост в сети; приложение выдает исключение «файл не найден», даже если библиотеки DLL находятся в той же папке, что и EXE. Я думаю, что это может быть общий код ошибки, и настоящая проблема связана с зависимостями внутри библиотеки PCAP.

Единственное различие, которое я могу найти между хостом разработки и хостом развертывания, — это среда Visual Studio. Я пробовал несколько исправлений на стороне разработки, в том числе пытался перестроить библиотеку PCAP из исходного кода (все еще есть проблемы с ненайденными файлами) и ориентироваться на разные платформы (x86, x64, любые), но всегда получаю тот же результат. Кто-нибудь сталкивался с этой проблемой?


person buzzard51    schedule 26.07.2017    source источник
comment
Я не могу говорить конкретно о PCapDotNet, но вы можете использовать ссылку Fusion Log Viewer для просмотра ошибок привязки сборки. Это может помочь вам определить, на какой сборке происходит сбой.   -  person Chris Dunaway    schedule 26.07.2017


Ответы (1)


Коллега на работе нашел решение этой проблемы: PcapNet.Core.DLL построена на C++ и зависит от распространяемой библиотеки Visual C++. Поэтому для работы PcapDotNet вы должны установить распространяемый пакет на целевой машине. Версия x86 - это та, которую нужно использовать:

vcredist_x86.exe

Как только это было запущено, мои приложения PcapDotNet работали нормально. Спасибо БК за ваши усилия!

person buzzard51    schedule 26.07.2017
comment
Это отличается от того, что написано в инструкции? github.com/PcapDotNet/Pcap.Net/ вики/ - person brickner; 28.07.2017
comment
@brickner Я следовал этим инструкциям, но ошибка все еще возникает. Любые другие причины? - person GeneCode; 01.03.2020