22

I've added an .ocx to the toolbox in VS. Two .dll's were created: Interop.NNN.dll, AxInterop.NNN.dll.

What is each one? Are they both required?

Yaron Naveh
  • 23,560
  • 32
  • 103
  • 158

2 Answers2

17

Interop.xxx.dll and AxInterop.xxx.dll are runtime callable wrappers (RCW) for a referenced COM and an ActiveX dll respectively.

interop.xxx.dll is purely an automation (a COM dll) wrapper, enabling you to manipulate the object within the namespace of your application. AxInterop.xxx.dll is a control wrapper for a ActiveX control, which can be dragged onto the form.

Adriaan Stander
  • 162,879
  • 31
  • 289
  • 284
  • So I need to deploy both? I will use the control on a form. – Yaron Naveh Feb 18 '10 at 10:44
  • It appears that in my case with MapPoint both were needed. My guess is that AxInterop.xxx.dll references Interop.xxx.dll in some cases but I haven't bothered to open it up in Reflector to verify this. – jpierson Jun 04 '13 at 12:57
  • Do I need install this 2 components in pc to run my .net fmw 4.6 application ? – Slinker Jan 10 '18 at 01:19
14

The AxFoo.dll assembly contains an automatically generated class that's derived from the System.Windows.Forms.AxHost control. It is pretty simple, it has methods, properties and events, the same ones you have available in the .ocx, that simply call the Foo.dll interop library.

So, yes, you definitely need to deploy both assemblies.

Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536