是否可以使用COM可见的.NET类与免注册COM?

时间:2010-02-10 16:00:26

标签: c# c++ com clickonce

我们正在开发一个包含.NET组件和旧版C ++ COM组件的ClickOnce应用程序。

目前我们正在使用MSI将C ++ COM组件添加到用户的计算机上(这是安装ClickOnce应用程序的先决条件),这意味着我们可以事先在用户的计算机上注册COM对象。

我们仍然可以通过ClickOnce推送用C#编写的其他应用程序的更新,但更新MSI安装的组件需要手动干预。

但是,我们试图弄清楚是否可以通过免注册COM安装C ++ COM组件,即它们都在同一目录中,并且每个组件都有一个清单文件,指定每个COM对象的clsid和界面。这意味着我们可以完全摆脱MSI。

这个link是对该主题的一个很好的介绍。

我已经能够获得一个.NET组件来加载C ++ COM对象,但不是相反。

有人知道这是否可行?

1 个答案:

答案 0 :(得分:5)

是的,这是可能的。您需要在清单中使用<clrClass>元素。有一个不错的方法located here。 SDK文档非常糟糕,您需要Junfeng Zhang's blog才能获得更好的背景信息。