¿Registrar un componente C # COM?
Pregunta
He desarrollado un componente C # com que estoy usando desde c ++ administrado. En mi máquina de desarrollo cuando todo funciona bien. Sin embargo, cuando distribuyo los archivos, recibí un error de que el componente no se ha registrado. Cuando intento un regsvr32 en el dll me da un error (no se pueden registrar dlls de C #). ¿Cómo registro correctamente este dll COM?
Solución
Utiliza regasm con < code> / codebase (y debe ser ComVisible [pero como Patrick McDonald señala correctamente, ya has superado eso, ya que funciona localmente])
Otros consejos
Use RegAsm con siwtch / codebase
si su ensamblaje no está instalado en el GAC (Global Assembly Cache).
Creo que normalmente debes hacer:
regasm /codebase
Porque COM necesita saber la ubicación exacta de su ensamblaje para poder cargarlo.
Como otros han sugerido, deberá configurar su proyecto C # como COM visible (configuración del proyecto, aplicación, botón de información de ensamblaje).
Se puede obtener un control más preciso de qué clases son visibles o no utilizando el atributo [ComVisible (verdadero)] / [ComVisible (falso)] antes de cada clase