我们有一个C#控制台应用程序项目,我们也希望通过COM公开它的一些功能。什么是明智的方式来解决这个问题?
答案 0 :(得分:1)
第一个选项。实际上,每当创建COM +服务时,您应该按照以下步骤进行操作:
答案 1 :(得分:1)
CLR和COM实际上都不关心您的程序是EXE文件而不是DLL。程序集按其显示名称定位,该名称不包含文件扩展名。 CLR首先查找与显示名称相同的文件,并附加.exe,然后尝试.dll
因此使用Regasm.exe很好,它将在运行时像DLL一样加载。唯一的区别是您的Main()方法不会运行。你不会得到控制台窗口,你当然不想要一个。并且您的[ComVisible]类必须是公共的,在EXE程序中使用它们时并不是绝对必要的。
以这种方式做这件事的唯一真正的伤亡是,接管维护代码工作的人将遭受巨大的困惑。你需要像待杀人的疯子一样对待你的生活。所以不要这样做,选择1是明智和安全的。