¿Qué debo hacer para implementar un servidor COM "fuera de proceso" en C #?

Estoy tratando de implementar un servidor COM "fuera de proceso" escrito en C #. ¿Cómo hago esto?

Necesito que el código C # esté "fuera del proceso" de mi aplicación C ++ principal, porque no puedo cargar el tiempo de ejecución .NET en mi espacio de proceso principal

¿POR QUÉ?:
Mi código C ++ está en una DLL que se carga en muchos EXE de clientes diferentes, algunos de los cuales usan diferentes versiones del tiempo de ejecución .NET. Como solo puede haber un tiempo de ejecución cargado en un solo proceso, mi mejor apuesta parece ser poner mi código C # en otro proceso.

Respuestas a la pregunta(4)

Su respuesta a la pregunta