domingo, 10 de marzo de 2013

RegAsm : warning RA0000


RegAsm : warning RA0000 : El registro de un ensamblado sin signo con /codebase puede provocar que dicho ensamblado interfiera con otras aplicaciones instaladas en el mismo equipo. El modificador /code
base sólo se utiliza con ensamblados con signos. Proporcione al ensamblado un nombre seguro y vuelva a registrarlo.


RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.




Al intentar registrar una dll para enviar correos con regasm me encontré con el warning RegAsm : warning RA0000.  Este warning aparece cuando intentas registrar una dll que no está firmada.

La dll la quiero llamar desde mi aplicación web con asp clásico por lo que necesito registrarla en la máquina para después poder llamarla desde mi código asp clásico.

Solución.

Lo que se debe hacer es firmar la dll generada y volver a compilar el proyecto

Para firmar la dll en Visual Studio 2010 debes ir a la ventana de Propiedades del proyecto en la pestaña de Firma, hacer click en Nuevo y aceptar las ventanas siguientes. Verificar que la casilla "Firmar el ensamblado" esté activa como en la imagen.




Si lo que deseas también es utilizar esta dll para llamarla desde algún proyecto .NET o ASP clásico, se 
debe establecer la propiedad ComVisible a True en el archivo assemblyInfo.cs 



O también seleccionando la opción Crear ensamblado visible a través de COM en la ventana de Propiedades del proyecto - Aplicación como en la imagen de abajo.



Con esto ya se puede hacer el llamado al objeto desde la aplicación de asp clásico de acuerdo al namespace, nombre de clase y métodos que se hayan definido. Sería una llamada como la siguiente:

Set myMail = CreateObject("Namespace.Clase") 
myMail.From = NombreFrom
myMail.To =  EmailTo
myMail.Subject = MsgSubject 
myMail.BodyFormat = 0 
myMail.MailFormat = 0 
myMail.Body = strResult 
myMail.Send
Set myMail = Nothing

Espero les sirva.

No hay comentarios.:

Publicar un comentario