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