Do you have source code for both applications? If you do, re-work them to run in one process. Of course, you could and usually should to segregate code in different assemblies, but use them as libraries, not different applications.
[EDIT]
So, you goal is not having two applications and communication. You goal is make a part of the code pluggable. This is reasonable. No way it should be two different applications and different processes!
Having part of the code pluggable does not mean different process, it's rather the opposite. You need to make pluggable code a separate assembly and pluggable during run-time, in the very beginning of it.
Make a plug-in interface, implement in it for two or different version of AutoCAD (or whatever else). Have a configuration file to specify which DLL to use, load appropriately selected assembly during run time and invoke the instance of the code implementing you plug-in interface. Having it all in one process is very important.
Now, you will find a very detailed sketch of plug-in architecture here:
Create WPF Application that uses Reloadable Plugins...[
^],
AppDomain refuses to load an assembly[
^].
Now, don't get it wrong! Most of the text in the above solutions is devoted to the difficult problem of re-loaded plug-ins. You don't need anything re-loadable. So you should ignore anything related to Application Domains and the discussion of really difficult problems or unloading/reloading. You architecture will be really simple. Just read on how to develop the plug-in architecture, loading of the assembly, recognition of the plug-in implementation in the loaded assembly and invocation of the class implementing plug-in.
Please, do yourself a favor: stop playing with the idea of separate processes. It's possible, will require ICP, remoting would be just an evil in your case. Don't do it, do plug-ins.
—SA