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?

¿Fue útil?

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).

Los detalles de más interruptores están aquí

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top