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

Joh*_*bly 6 c# c++ com clickonce

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

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

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

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

这个链接是对该主题的一个很好的介绍.

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

有谁知道这是否可能?

Han*_*ant 5

是的,这是可能的.您需要使用<clrClass>清单中的元素.有一个体面如何对设在这里.SDK文档非常悲惨,你需要Junfeng Zhang的博客才能获得更好的背景信息.