Tengo una aplicación VB6 que utiliza una DLL COM. La DLL está escrita en C#. En las propiedades del proyecto C# tengo marcada la opción "Registrar para la interoperabilidad COM". La aplicación VB6 funciona bien en mi máquina de desarrollo. El código C# sigue exactamente este formato: CodeProject C# COM Example¿Cómo registro una DLL COM escrita en C# con Regsvr32?
Al desplegar a otras máquinas, Regsvr32.exe me da el siguiente error al intentar registrar la DLL:
The module "MyCOM.dll" was loaded but the entry-point DLLRegisterServer was not found.
¿Qué significa esto? No hay tutoriales/documentación que he leído sobre las DLL COM dicen algo acerca de "entry-point DLLRegisterServer".
Hemos tenido problemas MAYORES al usar RegAsm.exe en diferentes máquinas, por lo que realmente necesitamos una solución donde podamos ejecutar regsvr32.exe que funcionará para cualquier máquina en la que implementemos (es decir, XP, Vista, Windows 7, máquinas x86, máquinas x64, etc.)
¿Qué debo agregar a mi código C# para que se pueda registrar con regsvr32.exe?
@Hans - 2 preguntas: ¿Cuáles son las 2 versiones para máquinas de 64 bits? ¿Hay alguna manera de crear, implementar y usar la DLL COM en VB6 sin registrarla? –
La versión de 32 bits y la de 64 bits. Técnicamente sí con un manifiesto COM sin registro en la aplicación del cliente. Necesita ''. –
@Mike Webb: Como está haciendo interoperabilidad COM con VB6, necesita 1. compilar el proyecto C# con un objetivo x86 y 2. usar regasm bajo c: \ windows \ syswow64. –