Agregar Referencias a Código Personalizado

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:25 PM por David Miralpeix

Desde Ahora 5 es posible agregar las referencias externas que queramos al código generado por Ctrl + F10, tanto en ejecución de pantalla como ejecución de scripts individuales.


Para ello deben acceder desde el nodo padre  al nodo "Mantenimiento Referencias Externas" que encontrarán dentro del menú Administración :


Desde la pantalla siguiente simplemente añadan las referencias que necesiten:


Código C#:

El siguiente código es de un script que sirve para enviar un correo electrónico mediante la librería referenciada "System.Net.Mail" y todas las librerías satélite que necesita para su correcto funcionamiento:

using AhoraCore;
using AhoraOCX;
using AhoraSistema;
using static AhoraCore.VBA.Interaction;
using static AhoraCore.VbMsgBoxResult;
using static AhoraCore.VbMsgBoxStyle;
using System;
using System.Security;

using System.Net;
using System.Net.Mail;

namespace AhoraScriptsVacia
{
    public class Script_18 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            // Configurar la información del correo electrónico
            string fromEmail = "elquesea@gmail.com";
            string toEmail = "elquesea@gmail.com";
            string subject = "Prueba de correo electrónico";
            string body = "Este es un correo de prueba enviado desde C# con System.Net.Mail";

            // Configurar el cliente SMTP (en este caso, Gmail)
            SmtpClient smtpClient = new SmtpClient("smtp.gmail.com")
            {
                Port = 587,
                Credentials = new NetworkCredential("elquesea@gmail.com", "PasswordDeElquesea"),
                EnableSsl = true,
            };

            // Crear el mensaje
            MailMessage mailMessage = new MailMessage(fromEmail, toEmail)
            {
                Subject = subject,
                Body = body,
            };

            try
            {
                // Enviar el correo electrónico
                smtpClient.Send(mailMessage);
                MsgBox("Correo electrónico enviado con éxito.");
            }
            catch (Exception ex)
            {
                MsgBox($"Error al enviar el correo electrónico: {ex.Message}");
            }
        }
    }
}

Este código funciona únicamente si las librerías referenciadas están en el mantenimiento correspondiente. 



Errores conocidos provocados por referencias faltantes:


Procedemos a listar algunos de los errores que devuelve el sistema cuando se intentan usar algunas funcionalidades no disponibles con las referencias estándar y las librerías necesarias a añadir:


Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember' 


Añadir las siguientes librerías:

- Microsoft.CSharp

- System.Runtime

- System.Linq.Expressions


¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo