Jan 28, 2011 at 8:14 PM
Edited Jan 28, 2011 at 8:15 PM

Hi all,

I am new to this and try to create a windows forms apllication that uses Pcap.Net.

I just started by creating a new project and adding the references to the five dlls which are stored in a subdirectory .

Now i modified the sample code for getting the device list and added this to the click event of a button. The whole form code looks like this:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using PcapDotNet.Core;
using PcapDotNet.Analysis;
using PcapDotNet.Base;
using PcapDotNet.Packets;

namespace WindowsFormsApplication1
    public partial class Form1 : Form
        public Form1()

        private void button1_Click(object sender, EventArgs e)
            // Retrieve the device list from the local machine
            IList<LivePacketDevice> allDevices = LivePacketDevice.AllLocalMachine;

            if (allDevices.Count == 0)
                label1.Text = "No interfaces found! Make sure WinPcap is installed.";

            // Print the list
            for (int i = 0; i != allDevices.Count; ++i)
                LivePacketDevice device = allDevices[i];
                label1.Text = "" + (i + 1) + ". " + device.Name;
                if (device.Description != null)
                    label1.Text += " (" + device.Description + ")";
                    label1.Text += " (No description available)";


When I do a debug run, I get an Error message after clicking the button (sorry, it's German):


System.BadImageFormatException wurde nicht behandelt.
  Message=Die Datei oder Assembly "PcapDotNet.Core, Version=, Culture=neutral, PublicKeyToken=4b6f3e583145a652" oder eine Abh�ngigkeit davon wurde nicht gefunden. Es wurde versucht, eine Datei mit einem falschen Format zu laden.
  FileName=PcapDotNet.Core, Version=, Culture=neutral, PublicKeyToken=4b6f3e583145a652
  FusionLog==== Zustandsinformationen vor Bindung ===
LOG: Benutzer = Garvin-PC\Garvin
LOG: DisplayName = PcapDotNet.Core, Version=, Culture=neutral, PublicKeyToken=4b6f3e583145a652
LOG: Appbase = file:///C:/Users/Garvin/documents/visual studio 2010/Projects/Netreader/Netreader/bin/Debug/
LOG: Urspr�nglicher PrivatePath = NULL
Aufruf von Assembly : Netreader, Version=, Culture=neutral, PublicKeyToken=null.
LOG: Diese Bindung startet im default-Load-Kontext.
LOG: Es wurde keine Anwendungskonfigurationsdatei gefunden.
LOG: Die Hostkonfigurationsdatei wird verwendet: 
LOG: Die Computerkonfigurationsdatei von C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config wird verwendet.
LOG: Verweis nach der Richtlinie: PcapDotNet.Core, Version=, Culture=neutral, PublicKeyToken=4b6f3e583145a652
LOG: Download von neuem URL file:///C:/Users/Garvin/documents/visual studio 2010/Projects/Netreader/Netreader/bin/Debug/PcapDotNet.Core.DLL.
ERR: Das Setup der Assembly konnte nicht abgeschlossen werden (hr = 0x8007000b). Die Suche wurde beendet.

       bei WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e)
       bei System.Windows.Forms.Control.OnClick(EventArgs e)
       bei System.Windows.Forms.Button.OnClick(EventArgs e)
       bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       bei System.Windows.Forms.Control.WndProc(Message& m)
       bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
       bei System.Windows.Forms.Button.WndProc(Message& m)
       bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       bei System.Windows.Forms.Application.Run(Form mainForm)
       bei WindowsFormsApplication1.Program.Main() in C:\Users\Garvin\documents\visual studio 2010\Projects\Netreader\Netreader\Program.cs:Zeile 18.
       bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       bei System.Threading.ThreadHelper.ThreadStart()


So what's wrong with my code?


Thanks in advance!


Jan 29, 2011 at 5:59 AM

Hey garv,

your code was okay. please add the xml manifest files PcapDotNet.Core.xml and other to the assemblies.
they are necessary dependencies and you get a BadImageFormatException without.



Jan 29, 2011 at 7:54 AM

Make sure you use the correct dlls.

If you have a 64 bit operating system use the x64 dlls.

If you have a 32-bit operating system use the x86 dlls.

Jan 29, 2011 at 10:55 AM

Hey Sebastian,

thank you for the answer. I will have a look at it when I am back home (currently sitting in the university).

@brickner: I am using the right one (x64).

Apr 13, 2011 at 11:54 AM


Ich hatte das selbe Problem: 64Bit OS x64 dlls.
Also habe ich einfach mal die x86er ausprobiert und siehe da, es funktioniert.

Klingt zwar komisch ist aber so.

Viele Grüße


Now for the not German ;o)

I had the same Problem on my Win7 64 bit OS using the x64 dlls.
So I tried the x86 ones and it worked.

Strange but true ...