การติดตั้ง

เพิ่ม Doconut ไปยังโครงการ .NET Standard 2.1 ของคุณ

ตัว viewer พื้นฐานของ 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.

ติดตั้งแพ็กเกจ

bash
dotnet add package Doconut.NETStandard

คำสั่งที่ไม่มีเวอร์ชันจะติดตั้งรุ่นเสถียรล่าสุด เพื่อทำซ้ำการปล่อยเวอร์ชัน 26.8.0 อย่างแม่นยำ ให้ระบุเวอร์ชันเป็นตัวเลือกแยก:

bash
dotnet add package Doconut.NETStandard --version 26.8.0

Doconut.NETStandard คือ ID ของแพ็กเกจ ส่วนส่วนต่อท้าย .26.8.0 เป็นของชื่อไฟล์ที่ดาวน์โหลด Doconut.NETStandard.26.8.0.nupkg และไม่ได้เป็นส่วนหนึ่งของ ID

หมายเลขเวอร์ชันคือรุ่น

เรื่องนี้สำคัญกว่าชื่อแพ็กเกจ ทั้งสองรุ่นของไลบรารี .NET Standard จะเผยแพร่ภายใต้ ID แพ็กเกจเดียวกัน, และเวอร์ชันเท่านั้นที่บ่งบอกความแตกต่าง:

เวอร์ชันเป้าหมายAPI
26.7.0 และต่ำกว่าnetstandard2.0การบูรณาการก่อนหน้า
26.8.0 และสูงกว่าnetstandard2.1การบูรณาการที่อธิบายไว้ที่นี่

ไม่มี shim ความเข้ากันได้และไม่มีแพ็กเกจข้างเคียง การเพิ่มเวอร์ชัน คือ การอัปเกรด, และคอมไพเลอร์จะรายงานความแตกต่างของ API ทันที

อย่าเลือกเอกสารจากชื่อแพ็กเกจเพียงอย่างเดียว:

  • new Viewer(_cache, _accessor, …), UnSafeMode, synchronous OpenDocument(...), viewer.InitCache(), UseDoconutWebFarm, และสคริปต์ viewer ที่คัดลอกด้วยตนเองระบุถึง การบูรณาการก่อนหน้า;
  • AddDoconut(), UseDoconutResources(), Viewer ที่ฉีดเข้า, และ OpenDocumentAsync(...) ระบุถึงการบูรณาการปัจจุบันที่อธิบายไว้ที่นี่

คู่มือการตั้งค่าก่อนหน้า แปลแล้วยังคงพร้อมใช้งาน. ใช้ คู่มือการย้าย เพื่อเปลี่ยนรุ่น; การอัปเดตแพ็กเกจจะไม่แปลงการเริ่มต้น, อายุการใช้งานของ viewer, หรือทรัพยากรของเบราว์เซอร์โดยอัตโนมัติ

ลงทะเบียน Doconut

AddDoconut() เป็นจุดเริ่มต้นการลงทะเบียนเดียว — มี overload เพียงหนึ่งตัวและมันจะเชื่อมต่อบริการ Viewer, บริการลิขสิทธิ์, และโครงสร้างการเรนเดอร์เข้าไปในคอนเทนเนอร์ DI

สองการเรียก middleware จะทำให้การตั้งค่าสมบูรณ์และลำดับของมันสำคัญ: UseDoconutResources() ต้องทำงานก่อน UseDoconut() UseDoconut() เป็น middleware สุดท้าย ดังนั้นการเรียกก่อนหมายความว่าทุกคำขอไปยังทรัพยากร /doconut-res จะไม่ถึงตัวจัดการทรัพยากรและจะได้ 404 การเชื่อมต่อ session ก็จำเป็นเช่นกัน — ระบบความปลอดภัยเอกสารของ Doconut ตรวจสอบทุกคำขอหน้าโดยอิงกับสถานะ session ของ ASP.NET

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // สถานะ session ต้องการแคช (MVC/Razor Pages มีเพิ่มไว้แล้ว)
builder.Services.AddSession(); // ความปลอดภัยเอกสารของ Doconut ทำงานบนสถานะเซสชันของ ASP.NET

app.UseSession();          // เรียก UseSession() ก่อน UseDoconut()
app.UseDoconutResources(); // ต้องลงทะเบียนก่อน UseDoconut()
app.UseDoconut();

เนมสเปซ

ประเภทการกำหนดค่าตอนนี้ไม่ได้กระจายอยู่ในสี่ namespace อีกต่อไป ในการปล่อยนี้เกือบทั้งหมดอยู่ใน namespace ราก Doconut:

csharp
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 มีคุณสมบัติเพิ่มเติมที่สามารถตั้งค่าได้ ทุกอย่างเป็นตัวเลือก — ค่าตั้งต้นด้านล่างจะใช้เมื่อคุณไม่ได้กำหนดค่าใด ๆ

คุณสมบัติค่าเริ่มต้นคำอธิบาย
ShowDoconutInfofalseเมื่อ true คำขอที่ไม่มี token จะคืนแบนเนอร์เวอร์ชันแทน 404 ใช้เป็นการตรวจสอบอย่างรวดเร็ว; ปิดในสภาพการผลิต
UnsafeModefalseเมื่อ true จะข้ามการตรวจสอบความปลอดภัยของ ASP.NET‑session ในคำขอหน้า ปิดในสภาพการผลิต. หมายเหตุการสะกด — ไลบรารีก่อนหน้าตั้งชื่อว่า UnSafeMode
MiddlewarePath"/doconut"ค่าประสานสำหรับ endpoint หน้า‑รูปภาพ. จะถูกตรวจสอบแต่ไม่ได้สร้าง branch ด้วยตนเอง; ให้สอดคล้องกับการแมป UseDoconut() จริงและ BasePath ของไคลเอนต์
ResourcesPath"/doconut-res"ที่ที่ให้บริการทรัพยากร JS/CSS/รูปภาพที่ฝังอยู่
LicensePath"" (สตริงว่าง)เส้นทางไปยังไฟล์ลิขสิทธิ์. ค่าว่างหมายถึงให้ค้นหาแหล่งต่อไปและทำการค้นหาอัตโนมัติ
LicenseContent"" (สตริงว่าง)เนื้อหาลิขสิทธิ์ดิบ — จาก environment variable, secret manager หรือฐานข้อมูล
LicenseStreamnullลิขสิทธิ์เป็นสตรีม, อ่านครั้งเดียวที่เริ่มต้น
ResetLicensefalseธงความเข้ากันได้สำรอง. ลิขสิทธิ์จะถูกอ่านระหว่าง AddDoconut(); รีสตาร์ทแอปหลังจากเปลี่ยนลิขสิทธิ์

ลำดับความสำคัญของลิขสิทธิ์เมื่อมีแหล่งมากกว่าหนึ่ง: LicenseStream แซง LicenseContent แซง LicensePath แซงการค้นหาอัตโนมัติ — ดูที่ การตั้งค่าลิขสิทธิ์

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // ประสานกับการแมปของแอปและ BasePath ของไคลเอนต์
    options.ResourcesPath   = "/doconut-res"; // ที่ที่ JS/CSS/รูปภาพของ viewer ให้บริการ
    options.UnsafeMode      = false;          // รักษาความปลอดภัยของ session ไว้
    options.ShowDoconutInfo = false;
});

ขั้นตอนต่อไป

หน้านี้เป็นประโยชน์หรือไม่?