Instalación
Agregar Doconut a su proyecto .NET Standard 2.1
El visor base Doconut para .NET Standard se entrega como un único paquete NuGet que se integra en cualquier aplicación ASP.NET Core. Los complementos opcionales utilizan paquetes separados. Esta página instala el paquete base, confirma que su host puede consumirlo y registra el middleware — lo mínimo necesario antes de su primera renderización.
Verifique primero el framework del host
La biblioteca tiene como objetivo netstandard2.1. Ese es un contrato más estrecho que la compilación anterior netstandard2.0, y es lo primero que hay que verificar:
| Anfitrión | Compatible |
|---|---|
| .NET Core 3.0 o posterior, incluido .NET 5/6/7/8 | Sí |
| .NET Framework (cualquier versión) | No — netstandard2.1 no puede ser consumido por .NET Framework |
Si la aplicación se ejecuta en .NET Framework, este no es el paquete correcto. Use Doconut.NETFramework en su lugar; a partir de la versión 26.9.0 requiere .NET Framework 4.7.2. Las aplicaciones de referencia incluidas en esta versión tienen como objetivo net8.0.
Instalar el paquete
dotnet add package Doconut.NETStandardEl comando sin versión instala la última versión estable. Para reproducir exactamente la versión 26.8.0 actual, pase la versión como una opción separada:
dotnet add package Doconut.NETStandard --version 26.8.0Doconut.NETStandard es el ID del paquete. El sufijo .26.8.0 pertenece al nombre de archivo descargado Doconut.NETStandard.26.8.0.nupkg y no forma parte del ID.
El número de versión es la generación
Esto es más importante aquí que el nombre del paquete. Ambas generaciones de la biblioteca .NET Standard se publican bajo el mismo ID de paquete, y solo la versión las diferencia:
| Versión | Destino | API |
|---|---|---|
| 26.7.0 y anteriores | netstandard2.0 | la integración anterior |
| 26.8.0 y posteriores | netstandard2.1 | la integración documentada aquí |
No hay una capa de compatibilidad ni paquetes instalados lado a lado. Incrementar la versión es la actualización, y el compilador informará de inmediato las diferencias de API.
No seleccione la documentación solo por el nombre del paquete:
new Viewer(_cache, _accessor, …),UnSafeMode,OpenDocument(...)sincrónico,viewer.InitCache(),UseDoconutWebFarmy scripts del visor copiados manualmente identifican la integración anterior;AddDoconut(),UseDoconutResources(), unViewerinyectado yOpenDocumentAsync(...)identifican la integración actual documentada aquí.
El manual de configuración anterior traducido sigue disponible. Use la guía de migración para cambiar de generación; una actualización del paquete no convierte automáticamente el inicio, la vida útil 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 de middleware completan la configuración, y su orden es importante: UseDoconutResources() debe ejecutarse antes que UseDoconut(). UseDoconut() es middleware terminal, por lo que llamarlo primero hace que cada solicitud a un recurso /doconut-res nunca llegue al manejador de recursos y devuelva 404. El cableado de 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.
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(); // llame a UseSession() antes de UseDoconut()
app.UseDoconutResources(); // debe registrarse antes de UseDoconut()
app.UseDoconut();Espacios de nombres
Los tipos de configuración ya no están repartidos en cuatro espacios de nombres. En esta versión, casi todo reside en el espacio de nombres raíz Doconut:
using Doconut; // Viewer, DoconutOptions, DocOptions, todas las configuraciones de formato
using Doconut.Middleware; // métodos AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds; // configuraciones de nube y de uso compartido de archivos
using Doconut.Configs.Conversion; // ConversionTargetLos nombres de los tipos en sí no cambiaron — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig y los demás siguen presentes. Si está migrando una aplicación existente, la mayoría de los archivos solo necesitan eliminar dos líneas using; consulte la guía de migración.
Todas las opciones
DoconutOptions acepta las siguientes propiedades configurables. Cada una es opcional — los valores predeterminados a continuación se aplican cuando una propiedad no se establece.
| Propiedad | Valor predeterminado | Descripción |
|---|---|---|
ShowDoconutInfo | false | Cuando es true, una solicitud sin token devuelve una pancarta de versión en lugar de un 404. Útil como verificación rápida; desactívelo en producción. |
UnsafeMode | false | Cuando es true, omite la comprobación de seguridad basada en la sesión de ASP.NET en las solicitudes de página. Desactívelo en producción. Nota la ortografía — la biblioteca anterior llamaba a esto UnSafeMode. |
MiddlewarePath | "/doconut" | Valor de coordinación para el punto final de página‑imagen. Se valida, pero no monta una rama por sí mismo; manténgalo alineado con el mapeo real de UseDoconut() y el BasePath del cliente. |
ResourcesPath | "/doconut-res" | Ruta desde la cual se sirven los recursos incrustados de JS/CSS/imagen. |
LicensePath | "" (cadena vacía) | Ruta al archivo de licencia. Vacío significa pasar al siguiente origen y luego buscar automáticamente. |
LicenseContent | "" (cadena vacía) | Contenido bruto de la licencia — proveniente de una variable de entorno, un gestor de secretos o una base de datos. |
LicenseStream | null | Licencia como flujo, leída una sola vez al iniciar. |
ResetLicense | false | Bandera de compatibilidad reservada. La licencia se lee durante AddDoconut(); reinicie 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 — vea la Configuración de licencia.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.MiddlewarePath = "/doconut"; // coordinar con el mapeo de la aplicación y el BasePath del cliente
options.ResourcesPath = "/doconut-res"; // donde se sirven los JS/CSS/imágenes del visor
options.UnsafeMode = false; // mantener la seguridad de sesión activada
options.ShowDoconutInfo = false;
});Próximos pasos
- Inicio rápido — abra su primer documento y rinda en el navegador.
- Configuración de licencia — dónde Doconut busca su archivo de licencia.
¿Fue útil esta página?