首页 > 解决方案 > 为什么我不能让 WinForms 应用程序注册 COM 互操作?

问题描述

我正在使用 Visual Studio 2015。我已经成功创建了一个类库并选择了:

Register form COM Interop
Make Assembly COM-visible

然后我设法使用安装项目将其部署到其他用户并且效果很好(尽管仍然不明白为什么 Intellisense 不适合它)

现在我正在尝试对 WinForms 应用程序做同样的事情,但是

Register form COM Interop

申请不可行,它是灰色的 - 应该是吗?如果是这样,为什么我不能为 COM Interop 注册一个应用程序,以便我可以在其他应用程序中操作它?(例如在 Excel VBA 中)

标签: c#.netvisual-studiodll

解决方案


要为 COM 互操作注册一个 .NET 程序集,该程序集必须是一个类库,旨在由应用程序共享

另一方面,WinForms 应用程序作为独立程序运行,并不打算由其他应用程序共享。

在这种情况下,您可以创建一个类库项目,并在项目中创建一个 WinForms UserControlUserControl ,并通过使其 COM 可见来向其他应用程序公开。

这是一个老例子,奇怪的是在我的搜索中很难找到更多最近的例子。


推荐阅读