O que preciso fazer para implementar um servidor COM "fora do processo" em C #?

Estou tentando implementar um servidor COM "fora do processo", escrito em c #. Como eu faço isso?

Eu preciso que o código C # esteja "fora do processo" do meu aplicativo C ++ principal, porque não consigo carregar o tempo de execução do .NET no meu espaço de processo principal

PORQUE?:
Meu código C ++ está em uma DLL carregada em vários EXEs de clientes diferentes, alguns dos quais usam versões diferentes do tempo de execução do .NET. Como só pode haver um tempo de execução carregado em um único processo, minha melhor aposta parece ser colocar meu código C # em outro processo.

questionAnswers(4)

yourAnswerToTheQuestion