如何在客户端应用程序中引用托管COM服务器(EXE)?需要建议。

3
我有一个用C#编写的托管COM进程外服务器exe,公开了我的应用程序对象模型以进行自动化,一切运作正常。我可以从非托管代码(例如VC++)访问它,并使用为我的服务器exe创建的类型库通过COM启动我的进程外服务器并使其工作。
当我尝试从托管代码中执行此操作,例如C#客户端应用程序时,我引用了我的服务器exe,但它将服务器进程内加载到客户端应用程序中。
我该如何在托管代码中使其作为独立进程运行?
我的目标是在我的应用程序上公开一个COM应用程序对象模型,以便未经管理的代码和托管代码都可以自动化使用,类似于Microsoft Office。通过COM,非托管代码一切正常,但尝试从托管代码中执行相同的操作只会在进程内实例化我的对象。
C#示例:
MyApp.Application app = new MyApp.Application();

我只想实例化对象,但我也想启动我的进程外COM服务器。这里有什么我错过的东西吗?我想知道是否有人有建议要做什么或查看哪里。

2个回答

0

我在this篇文章中找到了答案:

无论.NET程序集的实现是类库DLL还是可执行文件,该程序集始终会被加载到客户端应用程序的地址空间中。对于EXE程序集而言,它既不会被执行,也不会使用正在运行的实例来实例化所需的.NET类。...

为了模拟将.NET EXE程序集用作进程外COM服务器,需要使用其他非正统手段。


0
我所能想到的就是使用托管在COM+中的服务组件。MSDN链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接