Visual Basic.NET - Generar y registrar DLL COM

   
Vista:

Generar y registrar DLL COM

Publicado por Mario Pescarmona (1 intervención) el 18/04/2008 20:11:49
Hola a todos:

Tengo problemas con un proyecto de DLL con interoperatividad COM en Visual Basic .Net 2005. Mi proyecto es simplemente una DLL que se queda 'esperando' a que un dispositivo USB (un lapiz digital) se asiente en su base, y luego de eso, generar un archivo con la informacion que haya descargado el lapiz.

La parte 'funcional' de mi DLL solo establece el ProgId de la misma, y devuelve mediante una propiedad de solo lectura un valor que resulta util a otro programa.

El problema es que yo deberia poder usar REGSVR32 para registrar la DLL en la PC donde instale la aplicacion, y me sale el siguiente error:

Se descargo servidor.dll pero no se encontro el punto de entrada DllRegisterServer.
No se puede registrar este archivo.

La unica manera que he encontrado de utilizar la DLL en la maquina de destino es instalando el SV 2005, distribuyendo el codigo fuente del proyecto, y recompilar la DLL.

Que estoy haciendo mal con el Visual studio, o que cosa hace el visual studio al generar el proyecto y recompilarlo que no logro reproducir recompilando la DLL con msbuild ni registrandola con EGSVR32 ???

Esto es inadecuado para comercializarlo asi. Necesito por favor una alternativa que resulte efectiva para registrar mi DLL..

Desde ya muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Generar y registrar DLL COM

Publicado por RLB (2 intervenciones) el 02/07/2009 16:22:22
El problema lo tienes porque no registrar la librería de forma adecuada en cada uno de los equipos.

Para registrarla bien tiene que ser con el comando regasm. He notado que algunas veces aunque tengas instalado el SDK no te instala ésta utilidad, por lo que lo mismo la tienes que bajar de internet.

En el equipo del cliente tienes que grabar la dll y la tlb generada en un directorio y grabar también el RegAsm.exe y RegAsm.exe.config, a no ser que éstos dos comandos estén en una de las carpetas contenidas en PATH de las variables de sistema (cosa que dudo).

Una vez copiadas los ficheros, olvidate del regsvr32 que no es necesario.

Tienes que lanzar el siguiente comando:
regasm [nombredll].dll /tlb: [nombredll].tlb /codebase

el /codebase es para copiar la dll en otro directorio distinto al de la aplicación, por ejemplo en el System32, si no lo utilizas y la dll no se encuentra en el directorio del ejecutable, te dará el error de automatización.

Espero que te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar