2010-02-10 30 views
6

Estamos desarrollando una aplicación ClickOnce con una combinación de componentes .NET y componentes COM heredados de C++.¿Es posible usar clases COM visibles de .NET con registro de COM libre?

Actualmente estamos agregando los componentes COM de C++ a la máquina del usuario utilizando una MSI (este es un requisito previo para instalar nuestra aplicación ClickOnce) lo que significa que podemos registrar los objetos COM en la máquina del usuario de antemano.

Aún podemos enviar actualizaciones al resto de la aplicación escrita en C# mediante ClickOnce, pero la actualización de los componentes instalados por MSI requiere una intervención manual.

Sin embargo, estamos tratando de averiguar si es posible instalar los componentes COM de C++ a través de COM libre de registro, es decir, están en el mismo directorio y cada componente tiene un archivo de manifiesto que especifica el clsid para cada COM objeto e interfaz. Esto significaría que podemos deshacernos del MSI por completo.

Esta link ha sido una buena introducción al tema.

He podido obtener un componente .NET para cargar un objeto COM C++, pero no al revés.

¿Alguien sabe si esto es posible?

Respuesta

5

Sí, eso es posible. Tendrá que usar el elemento <clrClass> en el manifiesto. Hay un how-to decente located here. Los documentos SDK son bastante miserables, necesitará Junfeng Zhang's blog para obtener una mejor información de fondo.

Cuestiones relacionadas