在C#中实现“out of proc”COM服务器需要做什么?

我正在尝试实现一个用C#编写的“out of proc”COM服务器。 我该怎么做呢?

我需要C#代码从我的主要C ++应用程序“out of proc”,因为我无法将.NET运行时加载到我的主进程空间

为什么?:
我的C ++代码位于一个DLL中,该DLL被加载到许多不同的客户EXE中,其中一些使用不同版本的.NET运行时。 由于只能有一个运行时加载到一个进程中,我最好的选择似乎是将我的C#代码放入另一个进程。

您可以使用System.EnterpriseServices.ServicedComponent创建COM +组件。 因此,您将能够创建进程外和进程内(客户端)组件激活以及池,远程处理,作为Windows服务运行等所有COM +的好处。

在这里我们可以读到它是可能的,但是exe将作为库加载而不是像exe那样在它自己的进程中启动。 我不知道这对你来说是否有问题? 它还包含一些可能的解决方案,如果你想让它像一个真正的进程外com服务器。 但也许使用另一种进程间通信方式更好。 就像.Net Remoting一样。

我不能推荐这样做,但你可以为你的C#库创建一个COM可调用的包装器,然后创建一个VB6 ActiveX exe项目,将调用委托给你的C#库。

为什么不能将.net运行时加载到进程空间中? 可以托管.net运行时并使用COM调用.net。