日期:2014-05-17  浏览次数:21002 次

C#做com组件支持Interop,为什么只能在dll工程里面而不能在exe的工程里面?
我建立一个C#的ClassLibrary,可以加入一个com组件的实现,在工程属性里面可以勾选"Register for COM Interop"(如下图)来生成一个tlb文件。这个tlb文件可以导出被别的工程使用,例如vc的工程。

但是如果是一个C#的Console application,那么这个选项是灰的,不能选,也没有找到编译之后生成的tlb文件。这是为什么呢? com组件既可以是dll形式的,也可以是exe形式的啊。

还是说C#/.net framework本身有这方面的限制呢? 谢谢。


------解决方案--------------------
http://code.msdn.microsoft.com/windowsdesktop/CSExeCOMServer-3b1c1054
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------
在 Visual Basic “项目设计器”的“编译”页上或 C# “项目设计器”的“生成”页上设置 Register for COM interop 属性。 对于“Windows 应用程序”或“控制台应用程序”项目,该属性不可用。

http://msdn.microsoft.com/zh-cn/library/vstudio/w29wacsy

------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/vstudio/w29wacsy