Como usar una dll desarrollada en VS2010 en VB6

Necesito crear una dll en VB .Net con Visual Studio 2010 para que se puede usar en otra solución en desarrollada en VB6. Estoy usando Microsoft Visual Studio 2010 en una máquina W7 x64 con Framewor 4.5 instalado. En este caso el proyecto se desarrollará con el Framewor 4.0.

1-Crear un nuevo proyecto como biblioteca de clases. (Archivo/Nuevo/Proyecto/Biblioteca de Clases)

2-Marcar la opción Crear ensamblado visible a través de COM. (Proyecto/Propiedades del Proyecto/Aplicación/Información del ensamblado…/Crear ensamblado visible a través de COM)

3-Se programa la clase, cómo se desee. Un ejemplo para C# o VB.Net se puede ver en el siguiente enlace.

4-Se ha de generar el Strong Name de nuestra librería. Se ha de utilizar la aplicación sn.exe. La aplicación  se encuentra para este caso en: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools

sn -k dllMy.snk

5-Añadir la firma que se acaba de generar al proyecto que se está programando. Para ello se marca primero la opción de Firmar el ensamblado. (Proyecto/Propiedades del Proyecto/Firma/Firmar el ensamblado) Después se añade el fichero .snk que se acaba de generar en Proyecto/Propiedades del Proyecto/Firma/Elegir un archivo de clave de nombre seguro.

6-Se genera el fichero dll.

7-Agregar la librería al GAC usando la aplicación gacutil. La aplicación para este ejemplo está en la ubicación: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools

gacutil /i dllMy.dll

8-Se realiza el registro de la librería para poder verla y usarla en nuestras aplicaciones con la siguiente usando regasm. La aplicación encuentra en para este caso en: C:\Windows\Microsoft.NET\Framework\v4.0.30319

regasm /tlb:dllMy.tlb dllMy.dll

9-Ya en Microsoft Visual Studio 6 se añade la Referencia al fichero tlb.

Me gustaría también comentar un par de cosas por si hay errores o se han hecho cambios en el fichero dll.

1-Si se desea desregistrar la librería hay que ejecutar:

regasm /u /tlb:dllMy.tlb dllMy.dll

2-Para eliminar la librería del GAC:

gacutil /u dllMy.dll

Fuentes para este artículo:

http://www.elguille.info/colabora/puntoNET/gflores_UsaNETenVB6.htm

http://www.geeksengine.com/article/register-dll.html

https://support.microsoft.com/es-es/kb/897297