Установка
Добавьте Doconut в ваш проект .NET Standard 2.1
Базовый просмотрщик Doconut для .NET Standard поставляется в виде одного пакета NuGet, который подключается к любому приложению ASP.NET Core. Дополнительные плагины используют отдельные пакеты. На этой странице устанавливается базовый пакет, проверяется, может ли ваш хост его использовать, и регистрируется middleware — минимальный набор, необходимый перед первым рендером.
Сначала проверьте фреймворк хоста
Библиотека нацелена на netstandard2.1. Это более узкий контракт, чем у предыдущей сборки netstandard2.0, и его следует проверять в первую очередь:
| Хост | Поддерживается |
|---|---|
| .NET Core 3.0 или новее, включая .NET 5/6/7/8 | Да |
| .NET Framework (любая версия) | Нет — netstandard2.1 не может быть использован в .NET Framework |
Если приложение работает на .NET Framework, это не тот пакет. Используйте Doconut.NETFramework вместо него; начиная с версии 26.9.0 он требует .NET Framework 4.7.2. Справочные приложения, поставляемые с этим релизом, нацелены на net8.0.
Установите пакет
dotnet add package Doconut.NETStandardКоманда без указания версии устанавливает последнюю стабильную сборку. Чтобы точно воспроизвести текущий релиз 26.8.0, передайте версию отдельным параметром:
dotnet add package Doconut.NETStandard --version 26.8.0Doconut.NETStandard — это идентификатор пакета. Суффикс .26.8.0 относится к имени загруженного файла Doconut.NETStandard.26.8.0.nupkg и не является частью ID.
Номер версии определяет поколение
Это важнее, чем название пакета. Обе версии библиотеки .NET Standard публикуются под одним и тем же идентификатором пакета, и только версия различает их:
| Версия | Цель | API |
|---|---|---|
| 26.7.0 и ниже | netstandard2.0 | предыдущая интеграция |
| 26.8.0 и выше | netstandard2.1 | интеграция, описанная здесь |
Совместимого shim‑а и параллельных пакетов нет. Повышение версии является обновлением, и компилятор сразу сообщает о различиях в API.
Не выбирайте документацию только по названию пакета:
new Viewer(_cache, _accessor, …),UnSafeMode, синхронныйOpenDocument(...),viewer.InitCache(),UseDoconutWebFarmи вручную скопированные скрипты просмотрщика указывают на предыдущую интеграцию;AddDoconut(),UseDoconutResources(), внедрённыйViewerиOpenDocumentAsync(...)указывают на текущую интеграцию, описанную здесь.
Переведённое руководство по предыдущей настройке по‑прежнему доступно. Используйте руководство по миграции, чтобы перейти между поколениями; обновление пакета не преобразует стартовый код, жизненный цикл просмотрщика или ресурсы браузера автоматически.
Зарегистрируйте Doconut
AddDoconut() — единственная точка входа для регистрации — существует одна перегрузка, которая подключает сервис Viewer, сервис лицензий и инфраструктуру рендеринга в контейнер DI.
Два вызова middleware завершают настройку, и их порядок имеет значение: UseDoconutResources() должен выполняться до UseDoconut(). UseDoconut() — терминальный middleware, поэтому вызов его первым приводит к тому, что каждый запрос к ресурсу /doconut-res не достигает обработчика ресурсов и возвращает 404. Также требуется подключение сессии — стандартная защита документов Doconut проверяет каждый запрос страницы через состояние сессии ASP.NET.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // состояние сессии требует кэш (MVC/Razor Pages уже добавляют один)
builder.Services.AddSession(); // защита документов Doconut опирается на состояние сессии ASP.NET
app.UseSession(); // вызов UseSession() должен быть до UseDoconut()
app.UseDoconutResources(); // необходимо зарегистрировать до UseDoconut()
app.UseDoconut();Пространства имён
Типы конфигурации больше не разбросаны по четырём пространствам имён. В этом релизе почти всё находится в корневом пространстве Doconut:
using Doconut; // Viewer, DoconutOptions, DocOptions, все конфиги форматов
using Doconut.Middleware; // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds; // конфиги облаков и файловых хранилищ
using Doconut.Configs.Conversion; // ConversionTargetИмена типов сами по себе не изменились — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig и остальные по‑прежнему доступны. Если вы переносите существующее приложение, большинству файлов достаточно удалить две строки using; см. руководство по миграции.
Все параметры
DoconutOptions принимает следующий набор настраиваемых свойств. Каждое из них необязательно — значения по умолчанию, указанные ниже, применяются, если свойство не задано.
| Свойство | Значение по умолчанию | Описание |
|---|---|---|
ShowDoconutInfo | false | При true запрос без token возвращает баннер версии вместо 404. Удобно для быстрой проверки; отключайте в продакшене. |
UnsafeMode | false | При true отключает проверку безопасности ASP.NET‑session при запросах страниц. Отключайте в продакшене. Обратите внимание на написание — в предыдущей библиотеке это называлось UnSafeMode. |
MiddlewarePath | "/doconut" | Координационный путь для конечной точки изображений страниц. Он проверяется, но сам по себе не монтирует ветку; держите его согласованным с реальным маппингом UseDoconut() и клиентским BasePath. |
ResourcesPath | "/doconut-res" | Путь, откуда обслуживаются встроенные ресурсы JS/CSS/изображения. |
LicensePath | "" (пустая строка) | Путь к файлу лицензии. Пустое значение означает переход к следующему источнику, затем авто‑поиск. |
LicenseContent | "" (пустая строка) | Сырой текст лицензии — из переменной окружения, менеджера секретов или базы данных. |
LicenseStream | null | Лицензия в виде потока, читается один раз при старте. |
ResetLicense | false | Зарезервированный флаг совместимости. Лицензия читается во время AddDoconut(); после замены лицензии перезапустите приложение. |
Приоритет лицензий, когда задано более одного источника: LicenseStream превалирует над LicenseContent, который превалирует над LicensePath, который превалирует над авто‑поиском — см. Настройка лицензии.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.MiddlewarePath = "/doconut"; // согласовать с маппингом приложения и клиентским BasePath
options.ResourcesPath = "/doconut-res"; // откуда обслуживаются JS/CSS/изображения просмотрщика
options.UnsafeMode = false; // сохранять безопасность сессии
options.ShowDoconutInfo = false;
});Следующие шаги
- Быстрый старт — откройте ваш первый документ и отобразите его в браузере.
- Настройка лицензии — где Doconut ищет ваш файл лицензии.
Была ли эта страница полезной?