Библиотека Pcap .NET: файл PcapDotNet.Core.DLL не найден
Используя библиотеку PcapDotNet от Github ( https://github.com/PcapDotNet/Pcap.Net/wiki/Using-Pcap.Net-in-your-programs), я создал службу Windows, которая позволяет анализировать удаленную сеть для устранения неполадок сети связи. После развертывания служба не может запуститься.
При запуске журнал событий Windows показывает:
Service cannot be started. System.IO.FileNotFoundException: Could not load file or assembly 'PcapDotNet.Core.dll' or one of its dependencies. The specified module could not be found.
File name: 'PcapDotNet.Core.dll' at NewPcapService.svcPcapServer.ServiceStart
Следуя указаниям на вики-странице pcapDotNet выше, я собрал проект в режиме выпуска и установил все рекомендуемые распространяемые пакеты.
"Отсутствующий" файл, PcapDotNet.Core.dll, находится вместе с 3 другими DLL-библиотеками PcapDotNet в той же папке, что и служба EXE.
Я также поместил копию всех 4 библиотек DLL в папки Windows и Windows\System32, но все безрезультатно.
Кто-нибудь может помочь в этом? Эта библиотека лежит в основе некоторых важных сетевых тестов, которые мы разрабатываем для устранения неполадок системы.
2 ответа
Обратите внимание, что, вероятно, файл не "отсутствует", но "одна из его зависимостей", вероятно, есть.
Это в основном вопрос 6 в FAQ Pcap.Net.
Пожалуйста, убедитесь, что вы выполнили все шаги в руководстве Using-Pcap.Net-in-your-Programs, так как оно, скорее всего, решит вашу проблему, как это делалось ранее для нескольких человек.
Хотя (я думал) я следовал рекомендациям, приведенным в руководстве Using-Pcap.Net-in-your-Programs, мне все еще не хватало распространяемого пакета для x86. Я пропустил его, потому что целевой хост - это 64-битная машина.
Для простоты я установил все рекомендуемые пакеты VC++ через командную строку:
vcredist_x86_2010.exe /passive /norestart
vcredist_x64_2010.exe /passive /norestart
vcredist_x86_2013.exe /install /passive /norestart
vcredist_x64_2013.exe /install /passive /norestart
Теперь приложение работает отлично.