Instalación

Agregar Doconut a tu proyecto .NET 6

El visor base Doconut para .NET 6 se entrega como un único paquete NuGet que se conecta a cualquier aplicación ASP.NET Core. Los complementos opcionales usan paquetes separados. Esta página instala el paquete base y registra el middleware — lo mínimo necesario antes de tu primera renderización.

Instalar el paquete

bash
dotnet add package Doconut.NET6

El comando sin versión instala la última versión estable. Para reproducir exactamente la versión 26.7.0 actual, pasa la versión como una opción separada:

bash
dotnet add package Doconut.NET6 --version 26.7.0

Doconut.NET6 es el ID del paquete. El sufijo .26.7.0 pertenece al nombre del archivo descargado Doconut.NET6.26.7.0.nupkg y no forma parte del ID.

Identificar la integración antes de actualizar

El ID del paquete Doconut.NET6 ha sido usado tanto por la integración clásica como por la actual de .NET 6. No selecciones la documentación solo por el nombre del paquete:

  • DocImage.axd, new Viewer(_cache, _accessor, ...), OpenDocument(...) síncrono y scripts del visor copiados manualmente identifican la integración clásica;
  • AddDoconut(), UseDoconutResources(), un Viewer inyectado y OpenDocumentAsync(...) identifican la integración actual documentada aquí.

El manual de configuración clásica traducido sigue disponible. Usa la guía de migración para cambiar de generación; una actualización normal del paquete no convierte automáticamente el arranque, la vida del visor o los recursos del navegador.

Registrar Doconut

AddDoconut() es el único punto de entrada de registro — hay una única sobrecarga, y conecta el servicio Viewer, el servicio de licencia y la infraestructura de renderizado al contenedor DI.

Dos llamadas al middleware completan la configuración, y su orden importa: UseDoconutResources() debe ejecutarse antes de UseDoconut(). UseDoconut() es middleware terminal, por lo que llamarlo primero hace que cualquier solicitud a un recurso /doconut-res nunca llegue al manejador de recursos y devuelva 404. El cableado de la sesión también es necesario — la seguridad de documentos predeterminada de Doconut valida cada solicitud de página contra el estado de sesión de ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // el estado de sesión necesita una caché (MVC/Razor Pages ya añaden una)
builder.Services.AddSession(); // la seguridad de documentos de Doconut se basa en el estado de sesión de ASP.NET

app.UseSession();          // llama a UseSession() antes de UseDoconut()
app.UseDoconutResources(); // debe registrarse antes de UseDoconut()
app.UseDoconut();

Todas las opciones

DoconutOptions acepta las siguientes propiedades configurables. Cada una es opcional — los valores predeterminados a continuación se aplican cuando una propiedad queda sin establecer.

PropertyDefaultDescription
ShowDoconutInfofalseCuando true, una solicitud sin token devuelve una pancarta de versión en lugar de un 404. Útil como verificación rápida; desactívalo en producción.
UnsafeModefalseCuando true, omite la comprobación de seguridad de sesión ASP.NET en las solicitudes de página. Desactívalo en producción.
MiddlewarePath"/doconut"Valor de coordinación para el punto final de página‑imagen. Se valida, pero no monta una rama por sí mismo; mantenlo alineado con el mapeo real de UseDoconut() y el BasePath del cliente.
ResourcesPath"/doconut-res"Desde donde se sirven los recursos JS/CSS/imagen incrustados.
LicensePath"" (cadena vacía)Ruta al archivo de licencia. Vacío significa pasar al siguiente origen, luego búsqueda automática.
LicenseContent"" (cadena vacía)Contenido bruto de la licencia — desde una variable de entorno, un gestor de secretos o una base de datos.
LicenseStreamnullLicencia como flujo, leída una vez al iniciar.
ResetLicensefalseBandera de compatibilidad reservada. Los servicios actuales de .NET 6 leen la licencia durante AddDoconut(); reinicia la aplicación después de reemplazar una licencia.

Prioridad de licencia cuando se establece más de una fuente: LicenseStream supera a LicenseContent, que supera a LicensePath, que supera a la búsqueda automática — ver Configuración de Licencia.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordina con el mapeo de la app y el BasePath del cliente
    options.ResourcesPath   = "/doconut-res"; // donde se sirven los JS/CSS/imagenes del visor
    options.UnsafeMode      = false;          // mantener la seguridad de sesión activada
    options.ShowDoconutInfo = false;
});

Próximos pasos

¿Fue útil esta página?