我有一个使用COM服务器的.NET应用程序。 COM服务器已在我运行它的机器上注册,因此当我的代码到达new MyInterop.SomeObject()
时,相应的MyComServer.exe
就会启动。
但是,正在调试时,我有几个MyComServer.exe
的副本驻留在具有不同配置文件的不同文件夹中。我想指定我的应用应加载哪个。
我知道的两个解决方法是:
MyComServer.exe /regserver
)。但我不喜欢使用全局解决方案解决本地问题。MyComServer.exe
(然后作为独立应用程序运行),COM基础架构将重用此现有流程。但那不是很自动化。有什么更合适吗?
答案 0 :(得分:1)
COM服务器.exe由新的MyInterop.SomeObject()调用启动。毫无疑问你有很多.exe的运行,因为你在调试时终止了程序,不允许.NET正常关闭并减少终结器线程中的引用计数。 COM没有机制来清理这些丢失的引用。只需使用Taskmgr.exe,Process选项卡即可终止正在运行的实例。
COM有一种机制通过ROT(运行对象表)连接到正在运行的服务器实例。然而,这不是你可以在以后解决的问题,它必须由服务器明确支持。如果您必须选择修改服务器,请考虑将其设置为进程内服务器。麻烦少了。
答案 1 :(得分:0)
您可以尝试根据调试版本动态创建配置文件。