martes, 4 de octubre de 2011

Registro dll desde .net c sharp

voy a intentar explicar un poco como registrar una dll de c sharp en un equipo para que desde navision se le pueda llamar, ya se ha explicado como crear una dll cuyos métodos sean visibles desde navision ahora el siguiente paso es registrarla para que esta sea operativa.

yo me he inclinado por añadir un proyecto de instalación en la solución donde hemos creado la aplicación, ir al equipo donde queremos instalarlo y al ejecutarlo nos copia la dll junto con el tlb que se genera en la carpeta que queremos normalmente en c:\windows\system32 y luego con el comando regasm del framework correspondiente registraríamos estas dll.

1 Creación del proyecto de instalación.


Lo primero es agregar un nuevo proyecto a la solución. Asegurarse de seleccionar la opción del asistente para proyectos de instalación.







Se elige el nombre que se quiera y al aceptar, se lanza el Wizard. Después de la pantalla de bienvenida, pide el entorno. Lo normal es seleccionar Windows



Después pedirá que se indique lo que se quiere incluir en el paquete. Indicar que queremos el resultado principal del proyecto de la DLL.




Después hay que indicar si se quiere añadir algún archivo complementario y ya termina.
El solo ya detecta como recurso imprescindible que tiene que estar el Framework en el equipo en el que lo vayas a instalar.

IMPORTANTE:

En la parte superior del explorador de soluciones, se mostrará una serie de botones. El primero de la izquierda da acceso al sistema de archivos para que se indique dónde instalar la DLL.





Seleccionar carpeta de la aplicación, y en las propiedades que se muestran, en DefaultLocation, indicar la ruta de la carpeta System32.











2 Registro de la Dll

Abririamos una ventana de Ms-dos y ejecutaríamos algo así:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\regasm.exe C:\windows\System32\fichero.dll /tlb:C:\Windows\System32\Fichero.tlb /codebase /verbose

La primera parte:
{C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\regasm.exe} esto depende del framework con en el que hayamos realizado la aplicación