When working with AutoCAD (or any other interop) that is likely to change version numbers between development and production or even bitness (x64 vs x86) it is better to use dynamics in C# (object in VB) rather than using references.
In order to have the accurate properties and methods in AutoCAD, you can a dummy project that references the ObjectARX dlls, and then a CAD class that abstracts all access to AutoCAD using objects (formerly variants, and dynamics in C#). I use the dummy project to get the correct spellings for the methods and properties, and then apply the same calls to my actual CAD project
So to get the application object I use:
dynamic _application = Marshal.GetActiveObject("AutoCAD.Application");
dynamic _document = _application.ActiveDocument // Or _application.Documents.Open("...")
VB
object application = GetObject(, "AutoCAD.Application") ' or CreateObject("AutoCAD.Application"
object document = application.ActiveDocument ' Or _application.Documents.Open("...")
The class ID passed to the GetActiveObject method : "AutoCAD.Application" will return the active or last installed version of AutoCAD. So on a machine with multiple versions, you can specify the version you want by specifying the version number in the class ID like this: "AutoCAD.Application.19". You'll need to carry out some research to know what the number should be.
By encapsulating all the AutoCAD features I need in my CAD class, I can call CAD.Line(....), CAD.InsertBlock(...).
Hope this helps.