Instalasi

Tambahkan Doconut ke proyek .NET Standard 2.1 Anda

Penampil Doconut dasar untuk .NET Standard tersedia sebagai satu paket NuGet yang dapat dipasang pada aplikasi ASP.NET Core apa pun. Plugin opsional menggunakan paket terpisah. Halaman ini menginstal paket dasar, mengonfirmasi host Anda dapat menggunakannya, dan mendaftarkan middleware — hal minimum yang diperlukan sebelum render pertama Anda.

Periksa kerangka kerja host terlebih dahulu

Perpustakaan menargetkan netstandard2.1. Itu merupakan kontrak yang lebih sempit dibandingkan build netstandard2.0 sebelumnya, dan hal pertama yang harus diverifikasi:

HostDidukung
.NET Core 3.0 atau lebih baru, termasuk .NET 5/6/7/8Ya
.NET Framework (semua versi)Tidak — netstandard2.1 tidak dapat dikonsumsi oleh .NET Framework

Jika aplikasi berjalan pada .NET Framework, ini bukan paket yang tepat. Gunakan Doconut.NETFramework sebagai gantinya; mulai dari 26.9.0 paket ini memerlukan .NET Framework 4.7.2. Aplikasi referensi yang disertakan dengan rilis ini menargetkan net8.0.

Instal paket

bash
dotnet add package Doconut.NETStandard

Perintah tanpa versi menginstal rilis stabil terbaru. Untuk mereproduksi rilis 26.8.0 secara tepat, berikan versi sebagai opsi terpisah:

bash
dotnet add package Doconut.NETStandard --version 26.8.0

Doconut.NETStandard adalah ID paket. Akhiran .26.8.0 merupakan bagian dari nama berkas Doconut.NETStandard.26.8.0.nupkg yang diunduh dan bukan bagian dari ID.

Nomor versi adalah generasinya

Hal ini lebih penting di sini daripada nama paket. Kedua generasi perpustakaan .NET Standard dipublikasikan dengan ID paket yang sama, dan hanya versi yang membedakannya:

VersiTargetAPI
26.7.0 dan lebih rendahnetstandard2.0integrasi sebelumnya
26.8.0 dan di atasnetstandard2.1integrasi yang didokumentasikan di sini

Tidak ada shim kompatibilitas dan tidak ada paket berdampingan. Menaikkan versi adalah peningkatan, dan kompiler akan melaporkan perbedaan API secara langsung.

Jangan pilih dokumentasi hanya dari nama paket:

  • new Viewer(_cache, _accessor, …), UnSafeMode, sinkron OpenDocument(...), viewer.InitCache(), UseDoconutWebFarm, dan skrip viewer yang disalin secara manual mengidentifikasi integrasi sebelumnya;
  • AddDoconut(), UseDoconutResources(), sebuah Viewer yang di‑inject, dan OpenDocumentAsync(...) mengidentifikasi integrasi saat ini yang didokumentasikan di sini.

Manual pengaturan sebelumnya yang telah diterjemahkan manual pengaturan sebelumnya tetap tersedia. Gunakan panduan migrasi untuk mengubah generasi; pembaruan paket tidak secara otomatis mengubah startup, masa pakai viewer, atau sumber daya peramban.

Daftarkan Doconut

AddDoconut() adalah satu‑satunya titik masuk pendaftaran — ada satu overload, dan ia menghubungkan layanan Viewer, layanan lisensi, serta infrastruktur rendering ke dalam kontainer DI.

Dua pemanggilan middleware menyelesaikan pengaturan, dan urutannya penting: UseDoconutResources() harus dijalankan sebelum UseDoconut(). UseDoconut() adalah middleware terminal, sehingga memanggilnya terlebih dahulu berarti setiap permintaan ke aset /doconut-res tidak pernah mencapai penangan sumber daya dan menghasilkan 404. Pengkabelan sesi juga diperlukan — keamanan dokumen Doconut default memvalidasi setiap permintaan halaman terhadap status sesi ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // status sesi membutuhkan cache (MVC/Razor Pages sudah menambah satu)
builder.Services.AddSession(); // keamanan dokumen Doconut bergantung pada status sesi ASP.NET

app.UseSession();          // panggil UseSession() sebelum UseDoconut()
app.UseDoconutResources(); // harus didaftarkan sebelum UseDoconut()
app.UseDoconut();

Namespace

Tipe konfigurasi tidak lagi tersebar di empat namespace. Pada rilis ini hampir semuanya berada di namespace root Doconut:

csharp
using Doconut;                       // Viewer, DoconutOptions, DocOptions, semua konfigurasi format
using Doconut.Middleware;            // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds;                // konfigurasi cloud dan berbagi file
using Doconut.Configs.Conversion;    // ConversionTarget

Nama tipe itu sendiri tidak berubah — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig dan sisanya masih ada. Jika Anda memindahkan aplikasi yang ada, sebagian besar file tidak memerlukan apa‑apa kecuali dua baris using yang dihapus; lihat panduan migrasi.

Semua opsi

DoconutOptions menerima properti yang dapat diatur berikut ini. Setiap properti bersifat opsional — nilai default di bawah ini berlaku bila properti dibiarkan kosong.

PropertiDefaultDeskripsi
ShowDoconutInfofalseKetika true, permintaan tanpa token mengembalikan spanduk versi alih-alih 404. Berguna sebagai pemeriksaan cepat; matikan di produksi.
UnsafeModefalseKetika true, melewati pemeriksaan keamanan sesi ASP.NET pada permintaan halaman. Matikan di produksi. Perhatikan ejaan — perpustakaan sebelumnya menyebut ini UnSafeMode.
MiddlewarePath"/doconut"Nilai koordinasi untuk endpoint gambar‑halaman. Nilai ini divalidasi, tetapi tidak secara otomatis membuat cabang; pertahankan selaras dengan pemetaan UseDoconut() yang sebenarnya dan BasePath klien.
ResourcesPath"/doconut-res"Tempat sumber daya JS/CSS/gambar yang disematkan disajikan dari.
LicensePath"" (string kosong)Jalur ke berkas lisensi. Kosong berarti melanjutkan ke sumber berikutnya, lalu pencarian otomatis.
LicenseContent"" (string kosong)Konten lisensi mentah — dari variabel lingkungan, pengelola rahasia, atau basis data.
LicenseStreamnullLisensi sebagai aliran, dibaca sekali saat startup.
ResetLicensefalseBendera kompatibilitas yang disiapkan. Lisensi dibaca selama AddDoconut(); restart aplikasi setelah mengganti lisensi.

Prioritas lisensi ketika lebih dari satu sumber diatur: LicenseStream mengalahkan LicenseContent mengalahkan LicensePath mengalahkan pencarian otomatis — lihat Pengaturan Lisensi.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // koordinasikan dengan pemetaan aplikasi dan BasePath klien
    options.ResourcesPath   = "/doconut-res"; // tempat JS/CSS/gambar viewer disajikan
    options.UnsafeMode      = false;          // pertahankan keamanan sesi tetap aktif
    options.ShowDoconutInfo = false;
});

Langkah selanjutnya

Apakah halaman ini membantu?