Wir freuen uns, die Veröffentlichung von GroupDocs.Comparison für .NET 26.5 bekannt zu geben, verfügbar seit Mai 2026.
GroupDocs.Comparison Version 26.5 liefert Verbesserungen der PDF‑Render‑Genauigkeit, erhöhte Lesbarkeit beim Vergleich von CSV‑ und Tabellendateien, neue API‑Funktionen für die Revisionsverwaltung und Tabellen‑Änderungs‑Metadaten sowie ein aktualisiertes NuGet‑Paketierungsmodell mit Multi‑Framework‑Unterstützung.

Fehlerbehebungen und Verbesserungen

  • [Feature] Multi‑Framework‑NuGet‑Paketierung und TFM‑aufgeteilte Pakete. (COMPARISONNET-4770)
  • [Enhancement] PDF‑Vergleich: Genauigkeit der Absatzdarstellung im Inline‑Modus verbessern. (COMPARISONNET-4751)
  • [Enhancement] Vergleichsergebnisse für PDF‑Dokumente mit Tabellen verbessern. (COMPARISONNET-4763)
  • [Bug] Fix für ArgumentOutOfRangeException beim Vergleich von PDFs mit formatierten Tabellen. (COMPARISONNET-4762)
  • [Feature] Optionale Entsorgung des übergebenen Streams im RevisionHandler unterstützen. (COMPARISONNET-4773)
  • [Enhancement] Lesbarkeit des CSV‑Vergleichsergebnisses mit Textmarkern verbessern. (COMPARISONNET-4769)
  • [Feature] ChangeInfo um Tabellen‑Eigenschaften erweitern. (COMPARISONNET-4767)
  • [Bug] Compare‑Methode wirft Ausnahme bei HTML‑Ausgabe. (COMPARISONNET-4764)

Hauptfunktionen

Multi‑Framework‑NuGet‑Paketierung und TFM‑aufgeteilte Pakete

GroupDocs.Comparison hat zu einem fortschrittlicheren NuGet‑Paket‑Liefermodell gewechselt. Das Hauptpaket zielt jetzt auf net462;net6.0;net8.0;net10.0 ab und ersetzt die vorherigen Ziel‑Frameworks net462;netstandard2.1.

Zusätzlich werden zur Reduzierung der Download‑Größe dedizierte pro‑Framework‑NuGet‑Pakete neben dem Hauptpaket veröffentlicht. Beim Installieren des plattformspezifischen Pakets werden nur die Binärdateien heruntergeladen, die zum Ziel‑Framework des Benutzers passen – keine ungenutzten Plattform‑Assemblies werden mitgeliefert.

Paket Ziel‑Framework
GroupDocs.Comparison net462;net6.0;net8.0;net10.0 (alle Frameworks)
GroupDocs.Comparison.net462 .NET Framework 4.6.2
GroupDocs.Comparison.net6 .NET 6.0
GroupDocs.Comparison.net8 .NET 8.0
GroupDocs.Comparison.net10 .NET 10.0

Hinweis: .NET Standard 2.1 wird nicht mehr als dediziertes Ziel unterstützt. Projekte, die zuvor netstandard2.1 verwendet haben, sollten auf eines der oben aufgeführten unterstützten TFMs migrieren.

Optionale Entsorgung des übergebenen Streams im RevisionHandler unterstützen

RevisionHandler akzeptiert jetzt einen Parameter leaveOpen, der steuert, ob der zugrunde liegende Stream beim Entsorgen des Handlers freigegeben wird. Wird leaveOpen auf true gesetzt, bleibt der Stream nach dem Entsorgen des RevisionHandler geöffnet, sodass der Aufrufer ihn weiterverwenden kann. Dies ist nützlich in Szenarien, in denen der Lebenszyklus des Streams extern verwaltet wird.

using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);

using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
    List<RevisionInfo> revisionList = revisionHandler.GetRevisions();

    foreach (var rev in revisionList)
    {
        if (rev.Type == RevisionType.Deletion)
            rev.Action = RevisionAction.Accept;
    }

    ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
    revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}

ChangeInfo um Tabellen‑Eigenschaften erweitern

Drei neue Eigenschaften wurden zu ChangeInfo hinzugefügt, um tabellen‑spezifische Metadaten für jede erkannte Änderung bereitzustellen. Diese Eigenschaften werden beim Vergleich von Excel (.xlsx) und CSV (.csv) Dateien befüllt und ermöglichen es, jede Änderung exakt im Raster der Tabelle zu lokalisieren:

  • Row – nullbasierter Zeilenindex der geänderten Zelle.
  • Column – nullbasierter Spaltenindex der geänderten Zelle.
  • ColumnHeader – der Header‑Text der Spalte, die die geänderte Zelle enthält (falls verfügbar).

Das folgende Beispiel zeigt, wie zwei CSV‑Dateien verglichen und die Änderungsliste – einschließlich der neuen Tabellen‑Eigenschaften – in JSON serialisiert wird:

string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";

using (var comparer = new Comparer(source))
{
    comparer.Add(target);
    var doc = comparer.Compare();
    var changes = doc.Changes;

    var json = changes.Select(c => new
    {
        id = c.Id,
        type = c.Type.ToString(),
        componentType = c.ComponentType,
        row = c.Row,
        column = c.Column,
        columnHeader = c.ColumnHeader,
        sourceText = c.SourceText,
        targetText = c.TargetText,
        text = c.Text
    });

    File.WriteAllText(outFilePathJson,
        JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}

Verbesserungen

Lesbarkeit des CSV‑Vergleichsergebnisses mit Textmarkern verbessern

Die CSV‑Vergleichsausgabe verwendet jetzt Inline‑Textmarker, um eingefügten und gelöschten Inhalt sofort sichtbar zu machen, ohne dass ein Nebeneinander‑Vergleich erforderlich