We’re happy to announce the release of GroupDocs.Comparison for .NET 26.5, available as of May 2026.
GroupDocs.Comparison version 26.5 delivers improvements to PDF rendering accuracy, enhanced CSV and spreadsheet comparison readability, new API capabilities for revision handling and spreadsheet change metadata, and an updated NuGet packaging model with multi‑framework support.
Fixes and enhancements
- [Feature] Multi‑framework NuGet packaging and TFM‑split packages. (COMPARISONNET-4770)
- [Enhancement] PDF compare: improve paragraph rendering accuracy in Inline mode. (COMPARISONNET-4751)
- [Enhancement] Enhance comparison results for PDF documents with tables. (COMPARISONNET-4763)
- [Bug] Fix ArgumentOutOfRangeException when comparing PDFs with styled tables. (COMPARISONNET-4762)
- [Feature] Support optional disposal of passed stream in RevisionHandler. (COMPARISONNET-4773)
- [Enhancement] Improve CSV comparison result readability with text markers. (COMPARISONNET-4769)
- [Feature] Extend ChangeInfo with Spreadsheet Properties. (COMPARISONNET-4767)
- [Bug] Compare method throws exception for HTML output. (COMPARISONNET-4764)
Major Features
Empacotamento NuGet multi‑framework e pacotes divididos por TFM
GroupDocs.Comparison passou a usar um modelo de entrega de pacotes NuGet mais avançado. O pacote principal agora tem como alvo net462;net6.0;net8.0;net10.0, substituindo os alvos anteriores net462;netstandard2.1.
Além disso, para reduzir o tamanho do download, pacotes NuGet dedicados por framework são publicados juntamente com o pacote principal. Ao instalar o pacote específico da plataforma, apenas os binários correspondentes ao framework de destino do usuário são baixados — nenhuma assembly de plataforma não utilizada é incluída.
| Package | Target framework |
|---|---|
GroupDocs.Comparison |
net462;net6.0;net8.0;net10.0 (todos os 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 |
Note: .NET Standard 2.1 não é mais suportado como alvo dedicado. Projetos que anteriormente dependiam de
netstandard2.1devem migrar para um dos TFMs suportados listados acima.
Suporte à liberação opcional do stream passado em RevisionHandler
RevisionHandler agora aceita um parâmetro leaveOpen que controla se o stream subjacente será descartado quando o handler for descartado. Quando leaveOpen é definido como true, o stream permanece aberto após o descarte do RevisionHandler, permitindo que o chamador continue a usá‑lo. Isso é útil em cenários onde o ciclo de vida do stream é gerenciado externamente.
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);
}
Extensão do ChangeInfo com propriedades de planilha
Três novas propriedades foram adicionadas ao ChangeInfo para expor metadados específicos de planilhas para cada mudança detectada. Essas propriedades são preenchidas ao comparar arquivos Excel (.xlsx) e CSV (.csv) e permitem localizar precisamente cada mudança dentro da grade da planilha:
Row– índice da linha (base zero) da célula alterada.Column– índice da coluna (base zero) da célula alterada.ColumnHeader– texto do cabeçalho da coluna que contém a célula alterada (quando disponível).
O exemplo abaixo mostra como comparar dois arquivos CSV e serializar a lista de mudanças — incluindo as novas propriedades de planilha — para 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 }));
}
Enhancements
Melhorar a legibilidade dos resultados de comparação CSV com marcadores de texto
A saída da comparação CSV agora usa marcadores de texto inline para tornar o conteúdo inserido e excluído imediatamente visível sem necessidade de visualização lado a lado:
- Texto inserido é envolto em parênteses — por exemplo,
(novo valor) - Texto excluído é envolto em colchetes — por exemplo,
[valor antigo]
How to get the update
Você pode obter a versão mais recente no NuGet ou baixá‑la diretamente do site da GroupDocs.
NuGet
GroupDocs.Comparison for .NET 26.5
Download direto
Baixe os assemblies para .NET e .NET Framework na página GroupDocs.Comparison for .NET 26.5.