אנו שמחים להודיע על השחרור של GroupDocs.Comparison for .NET 26.5, זמין החל מ-מאי 2026.
GroupDocs.Comparison גרסה 26.5 מביאה שיפורים בדיוק הצגת PDF, קריאות משופרת של השוואת CSV וגיליונות אלקטרוניים, יכולות API חדשות לטיפול ברוויזיות ונתוני שינוי בגיליונות, וכן מודל אריזת NuGet מעודכן עם תמיכה מרובת‑מסגרות.

תיקונים ושיפורים

  • [Feature] אריזת NuGet מרובת‑מסגרות וחבילות מפוצלות לפי TFM. (COMPARISONNET-4770)
  • [Enhancement] השוואת PDF: שיפור דיוק הצגת פסקאות במצב Inline. (COMPARISONNET-4751)
  • [Enhancement] שיפור תוצאות ההשוואה למסמכי PDF עם טבלאות. (COMPARISONNET-4763)
  • [Bug] תיקון ArgumentOutOfRangeException בעת השוואת PDF עם טבלאות מעוצבות. (COMPARISONNET-4762)
  • [Feature] תמיכה בשחרור אופציונלי של ה‑Stream שהועבר ל‑RevisionHandler. (COMPARISONNET-4773)
  • [Enhancement] שיפור קריאות תוצאות השוואת CSV עם סימוני טקסט. (COMPARISONNET-4769)
  • [Feature] הרחבת ChangeInfo עם מאפייני גיליון אלקטרוני. (COMPARISONNET-4767)
  • [Bug] מתודת Compare זורקת חריגה עבור פלט HTML. (COMPARISONNET-4764)

תכונות מרכזיות

אריזת NuGet מרובת‑מסגרות וחבילות מפוצלות לפי TFM

GroupDocs.Comparison עבר למודל הפצה מתקדם יותר של חבילות NuGet. החבילה הראשית כעת תומכת ב‑net462;net6.0;net8.0;net10.0, במקום ה‑targets הקודמים net462;netstandard2.1.

בנוסף, כדי לצמצם את גודל ההורדה, חבילות NuGet ייעודיות לכל מסגרת משוחררות לצד החבילה הראשית. כאשר מתקינים את החבילה הספציפית לפלטפורמה, מורידים רק את הקבצים הבינריים המתאימים למסגרת היעד של המשתמש — ללא אסמבליות פלטפורמה שאינן בשימוש.

חבילה מסגרת יעד
GroupDocs.Comparison net462;net6.0;net8.0;net10.0 (כל המסגרות)
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

הערה: .NET Standard 2.1 אינו נתמך יותר כ‑target ייעודי. פרויקטים שהיו תלויים ב‑netstandard2.1 צריכים לעבור לאחת מה‑TFM הנתמכות המופיעות למעלה.

תמיכה בשחרור אופציונלי של ה‑Stream שהועבר ל‑RevisionHandler

RevisionHandler מקבל כעת פרמטר leaveOpen שמחליט האם לשחרר את ה‑Stream הבסיסי כאשר המנהל משוחרר. כאשר leaveOpen מוגדר ל‑true, ה‑Stream נשאר פתוח לאחר ש‑RevisionHandler שוחרר, מה שמאפשר למזמין להמשיך להשתמש בו. זה שימושי במצבים שבהם מחזור החיים של ה‑Stream מנוהל חיצונית.

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 עם מאפייני גיליון אלקטרוני

הוספו שלוש מאפיינים חדשים ל‑ChangeInfo כדי לחשוף מטא‑נתונים ספציפיים לגיליון לכל שינוי שמזוהה. מאפיינים אלה מתמלאים בעת השוואת קבצי Excel (.xlsx) ו‑CSV (.csv) ומאפשרים לאתר במדויק כל שינוי ברשת הגיליון:

  • Row – אינדקס שורה (מתחיל מאפס) של התא שהשתנה.
  • Column – אינדקס עמודה (מתחיל מאפס) של התא שהשתנה.
  • ColumnHeader – טקסט הכותרת של העמודה שבה נמצא התא (כאשר קיים).

הדוגמה שלהלן מציגה כיצד להשוות שני קבצי CSV ולסדר את רשימת השינויים — כולל המאפיינים החדשים של הגיליון — ל‑JSON:

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 }));
}

שיפורים

שיפור קריאות תוצאות השוואת CSV עם סימוני טקסט

פלט השוואת CSV משתמש כעת בסימוני טקסט משולבים כדי להפוך תוכן שהוכנס או הוסר לגלוי מיידית ללא צורך בתצוגה צידית‑צדית:

  • טקסט הוכנס מוקף בסוגריים – לדוגמה, (new value)
  • טקסט הוסר מוקף בסוגריים מרובעים – לדוגמה, [old value]

איך לקבל את העדכון

אתם יכולים לקבל את הגרסה האחרונה מ-NuGet או להוריד אותה ישירות מ-אתר GroupDocs.

NuGet

[GroupDocs.Comparison for .NET 26.5](https://www.nuget.org/packages