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