From 0ff184836a35c7b1c575523279af4264e57429db Mon Sep 17 00:00:00 2001 From: Sergey Tihon Date: Thu, 7 Sep 2023 09:22:52 +0200 Subject: [PATCH] DocumentFormat.OpenXml 3.0 beta 3 (IPackage) (#63) * feat: DocumentFormat.OpenXml (2.20) * fix: PR to net6 branch * fix: build errors * fix: some errors * feat: update dependencies * feat: SixLabors.ImageSharp.Drawing (1.0) * fix: MarkupCompatibilityProcessMode.NoProcess, // Otherwise OpenXml delete custom `pt14:Unid` attributes on save * fix: null check issue due to class to struct convertion * fix: deps update * fix: dotnet version for docs * feat: DocumentFormat.OpenXml 3.0.0-beta0003 * feat: ImageSharp v3 * Revert "feat: ImageSharp v3" This reverts commit 59c2fda1d2c5fd55c9cb249a6c23475ba6f474d9. --- .config/dotnet-tools.json | 2 +- .github/workflows/main.yml | 5 +- Clippit.Tests/Word/WmlComparerTests2.cs | 5 +- Clippit.Tests/paket.references | 1 + Clippit.sln | 1 + ...mparer.Private.Methods.PreProcessMarkup.cs | 2 +- ...omparer.Private.Methods.ProduceDocument.cs | 15 +- .../WmlComparer.Private.Methods.Util.cs | 19 +- .../WmlComparer.Public.Methods.Consolidate.cs | 5 +- Clippit/MetricsGetter.cs | 16 +- .../PowerPoint/FluentPresentationBuilder.cs | 25 +- .../PowerPoint/PresentationBuilderTools.cs | 53 +-- Clippit/PtOpenXmlDocument.cs | 72 ++-- Clippit/Word/DocumentAssembler.cs | 6 +- Clippit/Word/DocumentBuilder.cs | 48 +-- Clippit/Word/RevisionProcessor.cs | 3 +- Clippit/Word/WmlToHtmlConverter.cs | 6 +- Clippit/paket.references | 1 + Clippit/paket.template | 2 + RELEASE_NOTES.md | 3 +- build.fsx | 7 +- build.fsx.lock | 407 ++++++++++-------- global.json | 4 +- paket.dependencies | 20 +- paket.lock | 213 ++------- 25 files changed, 449 insertions(+), 492 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 48e13785..fd9fe4ab 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -9,7 +9,7 @@ ] }, "fake-cli": { - "version": "5.20.4", + "version": "6.0.0", "commands": [ "fake" ] diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b8d7b9fb..b84b2b9a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,6 +7,7 @@ on: pull_request: branches: - master + - net6 jobs: build: @@ -15,7 +16,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macOS-latest] - dotnet: [6.0.401] + dotnet: [6.0.407] runs-on: ${{ matrix.os }} steps: @@ -47,7 +48,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.401 + dotnet-version: 6.0.407 - name: Install local tools run: dotnet tool restore - name: Paket Restore diff --git a/Clippit.Tests/Word/WmlComparerTests2.cs b/Clippit.Tests/Word/WmlComparerTests2.cs index c20e5f03..6551084a 100644 --- a/Clippit.Tests/Word/WmlComparerTests2.cs +++ b/Clippit.Tests/Word/WmlComparerTests2.cs @@ -77,8 +77,7 @@ public void CZ001_CompareTrackedInPrev(string testId, string name1, string name2 var source1Wml = new WmlDocument(source1CopiedToDestDocx.FullName); var source2Wml = new WmlDocument(source2CopiedToDestDocx.FullName); - var settings = new WmlComparerSettings(); - settings.DebugTempFileDi = thisTestTempDir; + var settings = new WmlComparerSettings { DebugTempFileDi = thisTestTempDir }; var comparedWml = WmlComparer.Compare(source1Wml, source2Wml, settings); /////////////////////////// @@ -90,7 +89,7 @@ public void CZ001_CompareTrackedInPrev(string testId, string name1, string name2 { var validator = new OpenXmlValidator(); var errors = validator.Validate(wDoc).Where(e => !ExpectedErrors.Contains(e.Description)); - if (errors.Count() > 0) + if (errors.Any()) { var ind = " "; diff --git a/Clippit.Tests/paket.references b/Clippit.Tests/paket.references index d7cf135e..d0aba400 100644 --- a/Clippit.Tests/paket.references +++ b/Clippit.Tests/paket.references @@ -1,4 +1,5 @@ DocumentFormat.OpenXml +DocumentFormat.OpenXml.Framework IDisposableAnalyzers Microsoft.NET.Test.Sdk xunit diff --git a/Clippit.sln b/Clippit.sln index d7c96d80..c901d1d4 100644 --- a/Clippit.sln +++ b/Clippit.sln @@ -15,6 +15,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution paket.dependencies = paket.dependencies README.md = README.md RELEASE_NOTES.md = RELEASE_NOTES.md + build.fsx = build.fsx EndProjectSection EndProject Global diff --git a/Clippit/Comparer/WmlComparer.Private.Methods.PreProcessMarkup.cs b/Clippit/Comparer/WmlComparer.Private.Methods.PreProcessMarkup.cs index e64fa50e..2396c77d 100644 --- a/Clippit/Comparer/WmlComparer.Private.Methods.PreProcessMarkup.cs +++ b/Clippit/Comparer/WmlComparer.Private.Methods.PreProcessMarkup.cs @@ -54,7 +54,7 @@ private static WmlDocument PreProcessMarkup(WmlDocument source, int startingIdFo var os = new OpenSettings { MarkupCompatibilityProcessSettings = new MarkupCompatibilityProcessSettings( - MarkupCompatibilityProcessMode.ProcessAllParts, + MarkupCompatibilityProcessMode.NoProcess, // Otherwise OpenXml delete custom `pt14:Unid` attributes on save FileFormatVersions.Office2007) }; diff --git a/Clippit/Comparer/WmlComparer.Private.Methods.ProduceDocument.cs b/Clippit/Comparer/WmlComparer.Private.Methods.ProduceDocument.cs index 810020e0..f308e117 100644 --- a/Clippit/Comparer/WmlComparer.Private.Methods.ProduceDocument.cs +++ b/Clippit/Comparer/WmlComparer.Private.Methods.ProduceDocument.cs @@ -9,6 +9,7 @@ using System.Text; using System.Xml.Linq; using Clippit.Word; +using DocumentFormat.OpenXml.Experimental; using DocumentFormat.OpenXml.Packaging; namespace Clippit @@ -846,9 +847,7 @@ private static object MarkContentAsDeletedOrInsertedTransform(XNode node, WmlCom } else if (status == "Inserted") { - var rPr = pPr.Element(W.rPr); - if (rPr == null) - rPr = new XElement(W.rPr); + var rPr = pPr.Element(W.rPr) ?? new XElement(W.rPr); rPr.Add(new XElement(W.ins, new XAttribute(W.author, settings.AuthorForRevisions), new XAttribute(W.id, s_maxId++), @@ -892,7 +891,7 @@ private static void IgnorePt14Namespace(XElement root) } var ignorable = (string) root.Attribute(MC.Ignorable); - if (ignorable != null) + if (ignorable is not null) { var list = ignorable.Split(' '); if (!list.Contains("pt14")) @@ -2756,8 +2755,8 @@ private static object CoalesceRecurse( var openXmlPartInNewDocument = part; return gc.Select(gce => { - var packageOfDeletedContent = openXmlPartOfDeletedContent.OpenXmlPackage.Package; - var packageOfNewContent = openXmlPartInNewDocument.OpenXmlPackage.Package; + var packageOfDeletedContent = openXmlPartOfDeletedContent.OpenXmlPackage.GetPackage(); + var packageOfNewContent = openXmlPartInNewDocument.OpenXmlPackage.GetPackage(); var partInDeletedDocument = packageOfDeletedContent.GetPart(part.Uri); var partInNewDocument = packageOfNewContent.GetPart(part.Uri); @@ -2781,8 +2780,8 @@ private static object CoalesceRecurse( var openXmlPartInNewDocument = part; return gc.Select(gce => { - var packageOfSourceContent = openXmlPartOfInsertedContent.OpenXmlPackage.Package; - var packageOfNewContent = openXmlPartInNewDocument.OpenXmlPackage.Package; + var packageOfSourceContent = openXmlPartOfInsertedContent.OpenXmlPackage.GetPackage(); + var packageOfNewContent = openXmlPartInNewDocument.OpenXmlPackage.GetPackage(); var partInDeletedDocument = packageOfSourceContent.GetPart(part.Uri); var partInNewDocument = packageOfNewContent.GetPart(part.Uri); diff --git a/Clippit/Comparer/WmlComparer.Private.Methods.Util.cs b/Clippit/Comparer/WmlComparer.Private.Methods.Util.cs index 5f1a16fc..120437e9 100644 --- a/Clippit/Comparer/WmlComparer.Private.Methods.Util.cs +++ b/Clippit/Comparer/WmlComparer.Private.Methods.Util.cs @@ -8,14 +8,15 @@ using System.Linq; using System.Xml.Linq; using Clippit.Internal; +using DocumentFormat.OpenXml.Packaging; namespace Clippit { public static partial class WmlComparer { private static XElement MoveRelatedPartsToDestination( - PackagePart partOfDeletedContent, - PackagePart partInNewDocument, + IPackagePart partOfDeletedContent, + IPackagePart partInNewDocument, XElement contentElement) { var elementsToUpdate = contentElement @@ -34,7 +35,7 @@ private static XElement MoveRelatedPartsToDestination( { var rId = (string) att; - var relationshipForDeletedPart = partOfDeletedContent.GetRelationship(rId); + var relationshipForDeletedPart = partOfDeletedContent.Relationships[rId]; var targetUri = PackUriHelper .ResolvePartUri( @@ -60,30 +61,30 @@ private static XElement MoveRelatedPartsToDestination( ? new Uri(uriString, UriKind.Absolute) : new Uri(uriString, UriKind.Relative); - var newPart = partInNewDocument.Package.CreatePart(uri, relatedPackagePart.ContentType); + var newPart = partInNewDocument.Package.CreatePart(uri, relatedPackagePart.ContentType, CompressionOption.Normal); // ReSharper disable once PossibleNullReferenceException - using (var oldPartStream = relatedPackagePart.GetStream()) - using (var newPartStream = newPart.GetStream()) + using (var oldPartStream = relatedPackagePart.GetStream(FileMode.Open, FileAccess.Read)) + using (var newPartStream = newPart.GetStream(FileMode.Create, FileAccess.Write)) { oldPartStream.CopyTo(newPartStream); } var newRid = Relationships.GetNewRelationshipId(); - partInNewDocument.CreateRelationship(newPart.Uri, TargetMode.Internal, + partInNewDocument.Relationships.Create(newPart.Uri, TargetMode.Internal, relationshipForDeletedPart.RelationshipType, newRid); att.Value = newRid; if (newPart.ContentType.EndsWith("xml")) { XDocument newPartXDoc; - using (var stream = newPart.GetStream()) + using (var stream = newPart.GetStream(FileMode.Open, FileAccess.Read)) { newPartXDoc = XDocument.Load(stream); MoveRelatedPartsToDestination(relatedPackagePart, newPart, newPartXDoc.Root); } - using (var stream = newPart.GetStream()) + using (var stream = newPart.GetStream(FileMode.Create, FileAccess.Write)) newPartXDoc.Save(stream); } } diff --git a/Clippit/Comparer/WmlComparer.Public.Methods.Consolidate.cs b/Clippit/Comparer/WmlComparer.Public.Methods.Consolidate.cs index d0ce3f1d..1fc51056 100644 --- a/Clippit/Comparer/WmlComparer.Public.Methods.Consolidate.cs +++ b/Clippit/Comparer/WmlComparer.Public.Methods.Consolidate.cs @@ -9,6 +9,7 @@ using System.Text; using System.Xml.Linq; using Clippit.Word; +using DocumentFormat.OpenXml.Experimental; using DocumentFormat.OpenXml.Packaging; namespace Clippit @@ -873,8 +874,8 @@ private static void AddToAnnotation( ConsolidationInfo consolidationInfo, WmlComparerSettings settings) { - var packageOfDeletedContent = wDocDelta.MainDocumentPart.OpenXmlPackage.Package; - var packageOfNewContent = consolidatedWDoc.MainDocumentPart.OpenXmlPackage.Package; + var packageOfDeletedContent = wDocDelta.MainDocumentPart.OpenXmlPackage.GetPackage(); + var packageOfNewContent = consolidatedWDoc.MainDocumentPart.OpenXmlPackage.GetPackage(); var partInDeletedDocument = packageOfDeletedContent.GetPart(wDocDelta.MainDocumentPart.Uri); var partInNewDocument = packageOfNewContent.GetPart(consolidatedWDoc.MainDocumentPart.Uri); consolidationInfo.RevisionElement = diff --git a/Clippit/MetricsGetter.cs b/Clippit/MetricsGetter.cs index 176e737f..d110d672 100644 --- a/Clippit/MetricsGetter.cs +++ b/Clippit/MetricsGetter.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.IO.Packaging; using System.Linq; using System.Text; using System.Xml.Linq; @@ -15,6 +14,7 @@ using Clippit.PowerPoint; using Clippit.Word; using DocumentFormat.OpenXml; +using DocumentFormat.OpenXml.Experimental; using SixLabors.Fonts; namespace Clippit @@ -178,9 +178,10 @@ private static XElement GetWmlMetrics(string fileName, bool invalidHyperlink, Wo private static XElement RetrieveContentTypeList(OpenXmlPackage oxPkg) { - var pkg = oxPkg.Package; + var pkg = oxPkg.GetPackage(); - var nonRelationshipParts = pkg.GetParts().Cast().Where(p => p.ContentType != "application/vnd.openxmlformats-package.relationships+xml"); + var nonRelationshipParts = pkg.GetParts() + .Where(p => p.ContentType != "application/vnd.openxmlformats-package.relationships+xml"); var contentTypes = nonRelationshipParts .Select(p => p.ContentType) .OrderBy(t => t) @@ -192,16 +193,17 @@ private static XElement RetrieveContentTypeList(OpenXmlPackage oxPkg) private static XElement RetrieveNamespaceList(OpenXmlPackage oxPkg) { - var pkg = oxPkg.Package; + var pkg = oxPkg.GetPackage(); - var nonRelationshipParts = pkg.GetParts().Cast().Where(p => p.ContentType != "application/vnd.openxmlformats-package.relationships+xml"); + var nonRelationshipParts = pkg.GetParts() + .Where(p => p.ContentType != "application/vnd.openxmlformats-package.relationships+xml"); var xmlParts = nonRelationshipParts .Where(p => p.ContentType.ToLower().EndsWith("xml")); var uniqueNamespaces = new HashSet(); foreach (var xp in xmlParts) { - using var st = xp.GetStream(); + using var st = xp.GetStream(FileMode.Open, FileAccess.Read); try { var xdoc = XDocument.Load(st); @@ -450,7 +452,7 @@ private static void IncrementMetric(Dictionary metricCountDictionary private static void ValidateImageExists(OpenXmlPart part, string relId, Dictionary metrics) { var imagePart = part.Parts.FirstOrDefault(ipp => ipp.RelationshipId == relId); - if (imagePart == null) + if (imagePart == default) IncrementMetric(metrics, H.ReferenceToNullImage); } diff --git a/Clippit/PowerPoint/FluentPresentationBuilder.cs b/Clippit/PowerPoint/FluentPresentationBuilder.cs index 62cb34ad..3a09f850 100644 --- a/Clippit/PowerPoint/FluentPresentationBuilder.cs +++ b/Clippit/PowerPoint/FluentPresentationBuilder.cs @@ -5,6 +5,8 @@ using System.Xml; using System.Xml.Linq; using Clippit.Internal; +using DocumentFormat.OpenXml.Experimental; +using DocumentFormat.OpenXml.Features; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Presentation; using Path = System.IO.Path; @@ -332,9 +334,8 @@ internal void AppendSlides(PresentationDocument sourceDocument, int start, int c var newSlide = _newDocument.PresentationPart.AddNewPart(); using (var sourceStream = slide.GetStream()) - using (var targetStream = newSlide.GetStream(FileMode.Create, FileAccess.Write)) { - sourceStream.CopyTo(targetStream); + newSlide.FeedData(sourceStream); } var slideDocument = newSlide.GetXDocument(); @@ -656,8 +657,7 @@ private void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, OpenXml }; using (var oldObject = oldPart.GetStream(FileMode.Open, FileAccess.Read)) { - using var newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite); - oldObject.CopyTo(newObject); + newPart.FeedData(oldObject); } oleReference.Attribute(R.id).Value = newContentPart.GetIdOfPart(newPart); } @@ -676,7 +676,7 @@ private void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, OpenXml continue; var oldPartIdPair2 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (oldPartIdPair2?.OpenXmlPart is ChartPart oldPart) + if (oldPartIdPair2.OpenXmlPart is ChartPart oldPart) { var oldChart = oldPart.GetXDocument(); var newPart = newContentPart.AddNewPart(); @@ -695,7 +695,7 @@ private void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, OpenXml continue; var oldPartIdPair2 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (oldPartIdPair2?.OpenXmlPart is ExtendedChartPart oldPart) + if (oldPartIdPair2.OpenXmlPart is ExtendedChartPart oldPart) { var oldChart = oldPart.GetXDocument(); var newPart = newContentPart.AddNewPart(); @@ -714,7 +714,7 @@ private void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, OpenXml continue; var oldPartIdPair3 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (oldPartIdPair3?.OpenXmlPart is ChartDrawingPart oldPart) + if (oldPartIdPair3.OpenXmlPart is ChartDrawingPart oldPart) { var oldXDoc = oldPart.GetXDocument(); var newPart = newContentPart.AddNewPart(); @@ -733,7 +733,7 @@ private void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, OpenXml continue; var oldPartIdPair4 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (oldPartIdPair4?.OpenXmlPart is UserDefinedTagsPart oldPart) + if (oldPartIdPair4.OpenXmlPart is UserDefinedTagsPart oldPart) { var oldXDoc = oldPart.GetXDocument(); var newPart = newContentPart.AddNewPart(); @@ -884,8 +884,7 @@ private void CopyRelatedImage(OpenXmlPart oldContentPart, OpenXmlPart newContent "image/svg+xml" => ".svg", _ => ".image" }; - newContentPart.OpenXmlPackage.PartExtensionProvider - .MakeSurePartExtensionExist(contentType, targetExtension); + newContentPart.Features.GetRequired().Register(contentType, targetExtension); var newPart = newContentPart switch { @@ -961,10 +960,10 @@ private void CopyRelatedImage(OpenXmlPart oldContentPart, OpenXmlPart newContent } else { - var newPart = newContentPart.OpenXmlPackage.Package.GetParts().FirstOrDefault(p => p.Uri == newContentPart.Uri); - if (newPart?.RelationshipExists(relId) == false) + var newPart = newContentPart.OpenXmlPackage.GetPackage().GetParts().FirstOrDefault(p => p.Uri == newContentPart.Uri); + if (newPart is not null && !newPart.Relationships.Contains(relId)) { - newPart.CreateRelationship(new Uri("NULL", UriKind.RelativeOrAbsolute), + newPart.Relationships.Create(new Uri("NULL", UriKind.RelativeOrAbsolute), System.IO.Packaging.TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", relId); } diff --git a/Clippit/PowerPoint/PresentationBuilderTools.cs b/Clippit/PowerPoint/PresentationBuilderTools.cs index d500c538..30eb4781 100644 --- a/Clippit/PowerPoint/PresentationBuilderTools.cs +++ b/Clippit/PowerPoint/PresentationBuilderTools.cs @@ -5,6 +5,7 @@ using System.Text; using System.Xml.Linq; using Clippit.Internal; +using DocumentFormat.OpenXml.Experimental; using DocumentFormat.OpenXml.Packaging; namespace Clippit.PowerPoint @@ -114,8 +115,7 @@ internal static void CopyChartObjects(ChartPart oldChart, ChartPart newChart) var newPart = newChart.AddEmbeddedPackagePart(oldPart.ContentType); using (var oldObject = oldPart.GetStream(FileMode.Open, FileAccess.Read)) { - using var newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite); - oldObject.CopyTo(newObject); + newPart.FeedData(oldObject); } dataReference.Attribute(R.id).Set(newChart.GetIdOfPart(newPart)); continue; @@ -125,8 +125,7 @@ internal static void CopyChartObjects(ChartPart oldChart, ChartPart newChart) var newPart = newChart.AddEmbeddedPackagePart(oldEmbeddedObjectPart.ContentType); using (var oldObject = oldEmbeddedObjectPart.GetStream(FileMode.Open, FileAccess.Read)) { - using var newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite); - oldObject.CopyTo(newObject); + newPart.FeedData(oldObject); } var rId = newChart.GetIdOfPart(newPart); @@ -135,14 +134,18 @@ internal static void CopyChartObjects(ChartPart oldChart, ChartPart newChart) // following is a hack to fix the package because the Open XML SDK does not let us create // a relationship from a chart with the oleObject relationship type. - var pkg = newChart.OpenXmlPackage.Package; + var pkg = newChart.OpenXmlPackage.GetPackage(); var fromPart = pkg.GetParts().FirstOrDefault(p => p.Uri == newChart.Uri); - var rel = fromPart?.GetRelationships().FirstOrDefault(p => p.Id == rId); - var targetUri = rel?.TargetUri; + if (fromPart is not null) + { + var rel = fromPart.Relationships.FirstOrDefault(p => p.Id == rId); + var targetUri = rel?.TargetUri; - fromPart?.DeleteRelationship(rId); - fromPart?.CreateRelationship(targetUri, System.IO.Packaging.TargetMode.Internal, - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", rId); + fromPart.Relationships.Remove(rId); + fromPart.Relationships.Create(targetUri, System.IO.Packaging.TargetMode.Internal, + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", + rId); + } continue; } @@ -183,8 +186,7 @@ void CopyPart(T oldPart) where T : OpenXmlPart var newPart = newChart.AddNewPart(oldPart.ContentType, newRid); using var oldStream = oldPart.GetStream(FileMode.Open, FileAccess.Read); - using var newStream = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite); - oldStream.CopyTo(newStream); + newPart.FeedData(oldStream); } } @@ -203,8 +205,7 @@ internal static void CopyExtendedChartObjects(ExtendedChartPart oldChart, Extend var newPart = newChart.AddEmbeddedPackagePart(oldPart.ContentType); using (var oldObject = oldPart.GetStream(FileMode.Open, FileAccess.Read)) { - using var newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite); - oldObject.CopyTo(newObject); + newPart.FeedData(oldObject); } dataReference.Attribute(R.id).Set(newChart.GetIdOfPart(newPart)); continue; @@ -214,8 +215,7 @@ internal static void CopyExtendedChartObjects(ExtendedChartPart oldChart, Extend var newPart = newChart.AddEmbeddedPackagePart(oldEmbeddedObjectPart.ContentType); using (var oldObject = oldEmbeddedObjectPart.GetStream(FileMode.Open, FileAccess.Read)) { - using var newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite); - oldObject.CopyTo(newObject); + newPart.FeedData(oldObject); } var rId = newChart.GetIdOfPart(newPart); @@ -224,14 +224,17 @@ internal static void CopyExtendedChartObjects(ExtendedChartPart oldChart, Extend // following is a hack to fix the package because the Open XML SDK does not let us create // a relationship from a chart with the oleObject relationship type. - var pkg = newChart.OpenXmlPackage.Package; + var pkg = newChart.OpenXmlPackage.GetPackage(); var fromPart = pkg.GetParts().FirstOrDefault(p => p.Uri == newChart.Uri); - var rel = fromPart?.GetRelationships().FirstOrDefault(p => p.Id == rId); - var targetUri = rel?.TargetUri; + if (fromPart is not null) + { + var rel = fromPart.Relationships.FirstOrDefault(p => p.Id == rId); + var targetUri = rel?.TargetUri; - fromPart?.DeleteRelationship(rId); - fromPart?.CreateRelationship(targetUri, System.IO.Packaging.TargetMode.Internal, - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", rId); + fromPart.Relationships.Remove(rId); + fromPart.Relationships.Create(targetUri, System.IO.Packaging.TargetMode.Internal, + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", rId); + } continue; } @@ -550,10 +553,10 @@ internal static void CopyExtendedPart(OpenXmlPart oldContentPart, OpenXmlPart ne } catch (KeyNotFoundException) { - var newPart = newContentPart.OpenXmlPackage.Package.GetParts().FirstOrDefault(p => p.Uri == newContentPart.Uri); - if (newPart.RelationshipExists(relId) == false) + var newPart = newContentPart.OpenXmlPackage.GetPackage().GetParts().FirstOrDefault(p => p.Uri == newContentPart.Uri); + if (!newPart.Relationships.Contains(relId)) { - newPart.CreateRelationship(new Uri("NULL", UriKind.RelativeOrAbsolute), + newPart.Relationships.Create(new Uri("NULL", UriKind.RelativeOrAbsolute), System.IO.Packaging.TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", relId); } diff --git a/Clippit/PtOpenXmlDocument.cs b/Clippit/PtOpenXmlDocument.cs index 2008f930..f96a0f69 100644 --- a/Clippit/PtOpenXmlDocument.cs +++ b/Clippit/PtOpenXmlDocument.cs @@ -376,48 +376,56 @@ private OpenXmlMemoryStreamDocument(MemoryStream stream) public static OpenXmlMemoryStreamDocument CreateWordprocessingDocument() { var stream = new MemoryStream(); - using var doc = WordprocessingDocument.Create(stream, DocumentFormat.OpenXml.WordprocessingDocumentType.Document); - doc.AddMainDocumentPart(); - doc.MainDocumentPart.PutXDocument(new XDocument( - new XElement(W.document, - new XAttribute(XNamespace.Xmlns + "w", W.w), - new XAttribute(XNamespace.Xmlns + "r", R.r), - new XElement(W.body)))); - doc.Close(); + using (var doc = WordprocessingDocument.Create(stream, DocumentFormat.OpenXml.WordprocessingDocumentType.Document)) { + doc.AddMainDocumentPart(); + doc.MainDocumentPart.PutXDocument(new XDocument( + new XElement(W.document, + new XAttribute(XNamespace.Xmlns + "w", W.w), + new XAttribute(XNamespace.Xmlns + "r", R.r), + new XElement(W.body)))); + } + return new OpenXmlMemoryStreamDocument(stream); } public static OpenXmlMemoryStreamDocument CreateSpreadsheetDocument() { var stream = new MemoryStream(); - using var doc = SpreadsheetDocument.Create(stream, DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook); - doc.AddWorkbookPart(); - XNamespace ns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; - XNamespace relationshipsns = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - doc.WorkbookPart.PutXDocument(new XDocument( - new XElement(ns + "workbook", - new XAttribute("xmlns", ns), - new XAttribute(XNamespace.Xmlns + "r", relationshipsns), - new XElement(ns + "sheets")))); - doc.Close(); + using (var doc = SpreadsheetDocument.Create(stream, + DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook)) + { + doc.AddWorkbookPart(); + XNamespace ns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + XNamespace relationshipsns = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; + doc.WorkbookPart.PutXDocument(new XDocument( + new XElement(ns + "workbook", + new XAttribute("xmlns", ns), + new XAttribute(XNamespace.Xmlns + "r", relationshipsns), + new XElement(ns + "sheets")))); + } + return new OpenXmlMemoryStreamDocument(stream); } public static OpenXmlMemoryStreamDocument CreatePresentationDocument() { var stream = new MemoryStream(); - using var doc = PresentationDocument.Create(stream, DocumentFormat.OpenXml.PresentationDocumentType.Presentation); - doc.AddPresentationPart(); - XNamespace ns = "http://schemas.openxmlformats.org/presentationml/2006/main"; - XNamespace relationshipsns = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - XNamespace drawingns = "http://schemas.openxmlformats.org/drawingml/2006/main"; - doc.PresentationPart.PutXDocument(new XDocument( - new XElement(ns + "presentation", - new XAttribute(XNamespace.Xmlns + "a", drawingns), - new XAttribute(XNamespace.Xmlns + "r", relationshipsns), - new XAttribute(XNamespace.Xmlns + "p", ns), - new XElement(ns + "sldMasterIdLst"), - new XElement(ns + "sldIdLst"), - new XElement(ns + "notesSz", new XAttribute("cx", "6858000"), new XAttribute("cy", "9144000"))))); - doc.Close(); + using (var doc = PresentationDocument.Create(stream, + DocumentFormat.OpenXml.PresentationDocumentType.Presentation)) + { + doc.AddPresentationPart(); + XNamespace ns = "http://schemas.openxmlformats.org/presentationml/2006/main"; + XNamespace relationshipsns = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; + XNamespace drawingns = "http://schemas.openxmlformats.org/drawingml/2006/main"; + doc.PresentationPart.PutXDocument(new XDocument( + new XElement(ns + "presentation", + new XAttribute(XNamespace.Xmlns + "a", drawingns), + new XAttribute(XNamespace.Xmlns + "r", relationshipsns), + new XAttribute(XNamespace.Xmlns + "p", ns), + new XElement(ns + "sldMasterIdLst"), + new XElement(ns + "sldIdLst"), + new XElement(ns + "notesSz", new XAttribute("cx", "6858000"), + new XAttribute("cy", "9144000"))))); + } + return new OpenXmlMemoryStreamDocument(stream); } diff --git a/Clippit/Word/DocumentAssembler.cs b/Clippit/Word/DocumentAssembler.cs index 0fe1126c..91328720 100644 --- a/Clippit/Word/DocumentAssembler.cs +++ b/Clippit/Word/DocumentAssembler.cs @@ -871,7 +871,7 @@ private static void FixUpDocPrIds(WordprocessingDocument wDoc, decimal maxDocPrI /// Type of the image part. /// The relationship identifier. /// ImagePart. - private static ImagePart GetImagePart(OpenXmlPart part, ImagePartType imagePartType, string relationshipId) => + private static ImagePart GetImagePart(OpenXmlPart part, PartTypeInfo imagePartType, string relationshipId) => part switch { MainDocumentPart mainDocumentPart => mainDocumentPart.AddImagePart(imagePartType, relationshipId), @@ -1051,7 +1051,7 @@ private static object ProcessImageContent(XElement element, XElement data, Templ /// Image Part Type to be embedded in the document and to be /// referenced by image control /// Error message - private static Stream Image2Stream(string inputImage, out ImagePartType imagePartType, out string error) + private static Stream Image2Stream(string inputImage, out PartTypeInfo imagePartType, out string error) { string imageType; Stream stream; @@ -1071,7 +1071,7 @@ private static Stream Image2Stream(string inputImage, out ImagePartType imagePar } catch (Exception) { - imagePartType = default(ImagePartType); + imagePartType = default; error = "Invalid Image data format"; return null; } diff --git a/Clippit/Word/DocumentBuilder.cs b/Clippit/Word/DocumentBuilder.cs index 6374b48b..9aded56a 100644 --- a/Clippit/Word/DocumentBuilder.cs +++ b/Clippit/Word/DocumentBuilder.cs @@ -310,7 +310,6 @@ public static void BuildDocument(List sources, string fileName) using (var output = streamDoc.GetWordprocessingDocument()) { BuildDocument(sources, output, new DocumentBuilderSettings()); - output.Close(); } streamDoc.GetModifiedDocument().SaveAs(fileName); } @@ -321,7 +320,6 @@ public static void BuildDocument(List sources, string fileName, Documen using (var output = streamDoc.GetWordprocessingDocument()) { BuildDocument(sources, output, settings); - output.Close(); } streamDoc.GetModifiedDocument().SaveAs(fileName); } @@ -332,7 +330,6 @@ public static WmlDocument BuildDocument(List sources) using (var output = streamDoc.GetWordprocessingDocument()) { BuildDocument(sources, output, new DocumentBuilderSettings()); - output.Close(); } return streamDoc.GetModifiedWmlDocument(); } @@ -343,7 +340,6 @@ public static WmlDocument BuildDocument(List sources, DocumentBuilderSe using (var output = streamDoc.GetWordprocessingDocument()) { BuildDocument(sources, output, settings); - output.Close(); } return streamDoc.GetModifiedWmlDocument(); } @@ -477,7 +473,7 @@ private static void BuildDocument(List sources, WordprocessingDocument if (sources.Count > 0) { // the following function makes sure that for a given style name, the same style ID is used for all documents. - if (settings != null && settings.NormalizeStyleIds) + if (settings is { NormalizeStyleIds: true }) sources = NormalizeStyleNamesAndIds(sources); using (var streamDoc = new OpenXmlMemoryStreamDocument(sources[0].WmlDocument)) @@ -3162,7 +3158,7 @@ private static void CopyRelatedImage(OpenXmlPart oldContentPart, OpenXmlPart new // part. This is not necessary for parts such as the main document part, but this code won't malfunction // in that case. var tempPartIdPair5 = newContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (tempPartIdPair5 != null) + if (tempPartIdPair5 != default) return; var tempEr5 = newContentPart.ExternalRelationships.FirstOrDefault(er => er.Id == relId); @@ -3170,7 +3166,7 @@ private static void CopyRelatedImage(OpenXmlPart oldContentPart, OpenXmlPart new return; var ipp2 = oldContentPart.Parts.FirstOrDefault(ipp => ipp.RelationshipId == relId); - if (ipp2 != null) + if (ipp2 != default) { var oldPart2 = ipp2.OpenXmlPart; if (!(oldPart2 is ImagePart)) @@ -3200,8 +3196,8 @@ private static void CopyRelatedImage(OpenXmlPart oldContentPart, OpenXmlPart new var id = newContentPart.GetIdOfPart(newPart); temp.AddContentPartRelTypeResourceIdTupple(newContentPart, newPart.RelationshipType, id); imageReference.SetAttributeValue(attributeName, id); - using (var stream = oldPart.GetStream()) - newPart.FeedData(stream); + using var stream = oldPart.GetStream(); + newPart.FeedData(stream); } else { @@ -3214,7 +3210,7 @@ private static void CopyRelatedImage(OpenXmlPart oldContentPart, OpenXmlPart new }); return rel != null; }); - if (refRel != null) + if (refRel != default) { imageReference.SetAttributeValue(attributeName, temp.ContentPartRelTypeIdList.First(cpr => { @@ -3259,7 +3255,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, // dm attribute var relId = diagramReference.Attribute(R.dm).Value; var ipp = newContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (ipp != null) + if (ipp != default) { var tempPart = ipp.OpenXmlPart; continue; @@ -3279,7 +3275,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, // lo attribute relId = diagramReference.Attribute(R.lo).Value; var ipp2 = newContentPart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp2 != null) + if (ipp2 != default) { var tempPart = ipp2.OpenXmlPart; continue; @@ -3300,7 +3296,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, // qs attribute relId = diagramReference.Attribute(R.qs).Value; var ipp5 = newContentPart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp5 != null) + if (ipp5 != default) { var tempPart = ipp5.OpenXmlPart; continue; @@ -3320,7 +3316,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, // cs attribute relId = diagramReference.Attribute(R.cs).Value; var ipp6 = newContentPart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp6 != null) + if (ipp6 != default) { var tempPart = ipp6.OpenXmlPart; continue; @@ -3347,18 +3343,18 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, // part. This is not necessary for parts such as the main document part, but this code won't malfunction // in that case. var ipp1 = newContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (ipp1 != null) + if (ipp1 != default) { var tempPart = ipp1.OpenXmlPart; continue; } var tempEr1 = newContentPart.ExternalRelationships.FirstOrDefault(z => z.Id == relId); - if (tempEr1 != null) + if (tempEr1 != default) continue; var ipp4 = oldContentPart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp4 != null) + if (ipp4 != default) { var oldPart = oldContentPart.GetPartById(relId); OpenXmlPart newPart = null; @@ -3411,7 +3407,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, if (string.IsNullOrEmpty(relId)) continue; var ipp2 = newContentPart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp2 != null) + if (ipp2 != default) { var tempPart = ipp2.OpenXmlPart; continue; @@ -3422,7 +3418,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, continue; var ipp3 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (ipp3 == null) + if (ipp3 == default) continue; var oldPart = (ChartPart)ipp3.OpenXmlPart; var oldChart = oldPart.GetXDocument(); @@ -3440,7 +3436,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, if (string.IsNullOrEmpty(relId)) continue; var ipp2 = newContentPart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp2 != null) + if (ipp2 != default) { var tempPart = ipp2.OpenXmlPart; continue; @@ -3451,7 +3447,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, continue; var ipp3 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (ipp3 == null) + if (ipp3 == default) continue; var oldPart = (ExtendedChartPart)ipp3.OpenXmlPart; var oldChart = oldPart.GetXDocument(); @@ -3470,7 +3466,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, continue; var ipp4 = newContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (ipp4 != null) + if (ipp4 != default) { var tempPart = ipp4.OpenXmlPart; continue; @@ -3481,7 +3477,7 @@ private static void CopyRelatedPartsForContentParts(OpenXmlPart oldContentPart, continue; var ipp5 = oldContentPart.Parts.FirstOrDefault(p => p.RelationshipId == relId); - if (ipp5 != null) + if (ipp5 != default) { var oldPart = (ChartDrawingPart)ipp5.OpenXmlPart; var oldXDoc = oldPart.GetXDocument(); @@ -3506,7 +3502,7 @@ private static void CopyFontTable(FontTablePart oldFontTablePart, FontTablePart continue; var ipp1 = newFontTablePart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp1 != null) + if (ipp1 != default) { var tempPart = ipp1.OpenXmlPart; continue; @@ -3539,7 +3535,7 @@ private static void CopyChartObjects(ChartPart oldChart, ChartPart newChart) var relId = dataReference.Attribute(R.id).Value; var ipp1 = oldChart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp1 != null) + if (ipp1 != default) { var oldRelatedPart = ipp1.OpenXmlPart; switch (oldRelatedPart) @@ -3595,7 +3591,7 @@ private static void CopyExtendedChartObjects(ExtendedChartPart oldChart, Extende var relId = dataReference.Attribute(R.id).Value; var ipp1 = oldChart.Parts.FirstOrDefault(z => z.RelationshipId == relId); - if (ipp1 != null) + if (ipp1 != default) { var oldRelatedPart = ipp1.OpenXmlPart; switch (oldRelatedPart) diff --git a/Clippit/Word/RevisionProcessor.cs b/Clippit/Word/RevisionProcessor.cs index ddf93eee..5cab4cec 100644 --- a/Clippit/Word/RevisionProcessor.cs +++ b/Clippit/Word/RevisionProcessor.cs @@ -1291,7 +1291,7 @@ private static object AcceptRevisionsForStylesTransform(XNode node) return null; return new XElement(element.Name, element.Attributes(), - element.Nodes().Select(n => AcceptRevisionsForStylesTransform(n))); + element.Nodes().Select(AcceptRevisionsForStylesTransform)); } return node; } @@ -3212,4 +3212,3 @@ public static IEnumerable ContentElementsBeforeSelf(this XElement elem /// cell immediately preceding the group of deleted cells by the /// ***sum*** of the values of the w:val attributes of w:gridSpan /// elements of each of the deleted cells. - diff --git a/Clippit/Word/WmlToHtmlConverter.cs b/Clippit/Word/WmlToHtmlConverter.cs index 7814c155..07708f1a 100644 --- a/Clippit/Word/WmlToHtmlConverter.cs +++ b/Clippit/Word/WmlToHtmlConverter.cs @@ -2936,7 +2936,7 @@ private static XElement ProcessDrawing(WordprocessingDocument wordDoc, if (imageRid == null) return null; var pp3 = wordDoc.MainDocumentPart.Parts.FirstOrDefault(pp => pp.RelationshipId == imageRid); - if (pp3 == null) return null; + if (pp3 == default) return null; var imagePart = (ImagePart)pp3.OpenXmlPart; if (imagePart == null) return null; @@ -3007,10 +3007,10 @@ private static XElement ProcessPictureOrObject(WordprocessingDocument wordDoc, try { var pp = wordDoc.MainDocumentPart.Parts.FirstOrDefault(pp2 => pp2.RelationshipId == imageRid); - if (pp == null) return null; + if (pp == default) return null; var imagePart = (ImagePart)pp.OpenXmlPart; - if (imagePart == null) return null; + if (imagePart == default) return null; var contentType = imagePart.ContentType; if (!ImageContentTypes.Contains(contentType)) diff --git a/Clippit/paket.references b/Clippit/paket.references index 5a31be9a..7b5422d8 100644 --- a/Clippit/paket.references +++ b/Clippit/paket.references @@ -1,3 +1,4 @@ DocumentFormat.OpenXml +DocumentFormat.OpenXml.Framework SixLabors.ImageSharp.Drawing IDisposableAnalyzers \ No newline at end of file diff --git a/Clippit/paket.template b/Clippit/paket.template index 4ea5416c..34aa2346 100644 --- a/Clippit/paket.template +++ b/Clippit/paket.template @@ -28,7 +28,9 @@ files dependencies framework: netstandard20 DocumentFormat.OpenXml >= LOCKEDVERSION + DocumentFormat.OpenXml.Framework >= LOCKEDVERSION SixLabors.ImageSharp.Drawing >= LOCKEDVERSION framework: net6.0 DocumentFormat.OpenXml >= LOCKEDVERSION + DocumentFormat.OpenXml.Framework >= LOCKEDVERSION SixLabors.ImageSharp.Drawing >= LOCKEDVERSION diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index fb4a7d81..6d703b07 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,6 @@ -#### 2.0.0-theta-001 Mar 27, 2023 +#### 2.0.0-theta-003 Sep 3, 2023 - Migration to .NET 6.0 +- DocumentFormat.OpenXml 3.0.0-beta0002 - `System.Drawing.Common` replaced by `SixLabors.ImageSharp.Drawing` - Removed `libgdiplus` dependency - Drop old `WmlComparer` diff --git a/build.fsx b/build.fsx index 38aaee07..5a5c89b0 100644 --- a/build.fsx +++ b/build.fsx @@ -1,7 +1,8 @@ #r @"paket: source https://nuget.org/api/v2 -framework netstandard2.0 -nuget FSharp.Core 5.0.0 +strategy: min +framework net6.0 +nuget FSharp.Core 6.0.0.0 nuget Fake.Core.Target nuget Fake.Core.ReleaseNotes nuget Fake.DotNet.Paket @@ -77,4 +78,4 @@ Target.create "All" ignore ==> "All" // start build -Target.runOrDefault "All" \ No newline at end of file +Target.runOrDefault "All" diff --git a/build.fsx.lock b/build.fsx.lock index e803652e..4f1c37c1 100644 --- a/build.fsx.lock +++ b/build.fsx.lock @@ -1,120 +1,131 @@ STORAGE: NONE -RESTRICTION: == netstandard2.0 +STRATEGY: MIN +RESTRICTION: == net6.0 NUGET remote: https://www.nuget.org/api/v2 BlackFox.VsWhere (1.1) FSharp.Core (>= 4.2.3) Microsoft.Win32.Registry (>= 4.7) - Fake.Core.CommandLineParsing (5.20.4) + Fake.Core.CommandLineParsing (5.23.1) FParsec (>= 1.1.1) - FSharp.Core (>= 4.7.2) - Fake.Core.Context (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Environment (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.FakeVar (5.20.4) - Fake.Core.Context (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Process (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - System.Collections.Immutable (>= 1.7.1) - Fake.Core.ReleaseNotes (5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.SemVer (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.String (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Target (5.20.4) - Fake.Core.CommandLineParsing (>= 5.20.4) - Fake.Core.Context (>= 5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Control.Reactive (>= 4.4.2) - FSharp.Core (>= 4.7.2) - Fake.Core.Tasks (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Trace (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Xml (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.DotNet.AssemblyInfoFile (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.DotNet.Cli (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.DotNet.MSBuild (>= 5.20.4) - Fake.DotNet.NuGet (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) + FSharp.Core (>= 6.0) + Fake.Core.Context (5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.Environment (5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.FakeVar (5.23.1) + Fake.Core.Context (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.Process (5.23.1) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.FakeVar (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + Fake.IO.FileSystem (>= 5.23.1) + FSharp.Core (>= 6.0) + System.Collections.Immutable (>= 5.0) + Fake.Core.ReleaseNotes (5.23.1) + Fake.Core.SemVer (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.SemVer (5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.String (5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.Target (5.23.1) + Fake.Core.CommandLineParsing (>= 5.23.1) + Fake.Core.Context (>= 5.23.1) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.FakeVar (>= 5.23.1) + Fake.Core.Process (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + FSharp.Control.Reactive (>= 5.0.2) + FSharp.Core (>= 6.0) + Fake.Core.Tasks (5.23.1) + Fake.Core.Trace (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.Trace (5.23.1) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.FakeVar (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.Core.Xml (5.23.1) + Fake.Core.String (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.DotNet.AssemblyInfoFile (5.23.1) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + Fake.IO.FileSystem (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.DotNet.Cli (5.23.1) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.Process (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + Fake.DotNet.MSBuild (>= 5.23.1) + Fake.DotNet.NuGet (>= 5.23.1) + Fake.IO.FileSystem (>= 5.23.1) + FSharp.Core (>= 6.0) Mono.Posix.NETStandard (>= 1.0) - Newtonsoft.Json (>= 12.0.3) - Fake.DotNet.MSBuild (5.20.4) + Newtonsoft.Json (>= 13.0.1) + Fake.DotNet.MSBuild (5.23.1) BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - MSBuild.StructuredLogger (>= 2.1.176) - Fake.DotNet.NuGet (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Tasks (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.Core.Xml (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Net.Http (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Newtonsoft.Json (>= 12.0.3) - NuGet.Protocol (>= 5.6) - Fake.DotNet.Paket (5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.DotNet.Cli (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.IO.FileSystem (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Net.Http (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.Process (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + Fake.IO.FileSystem (>= 5.23.1) + FSharp.Core (>= 6.0) + MSBuild.StructuredLogger (>= 2.1.545) + Fake.DotNet.NuGet (5.23.1) + Fake.Core.Environment (>= 5.23.1) + Fake.Core.Process (>= 5.23.1) + Fake.Core.SemVer (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Tasks (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + Fake.Core.Xml (>= 5.23.1) + Fake.IO.FileSystem (>= 5.23.1) + Fake.Net.Http (>= 5.23.1) + FSharp.Core (>= 6.0) + Newtonsoft.Json (>= 13.0.1) + NuGet.Protocol (>= 5.11) + Fake.DotNet.Paket (5.23.1) + Fake.Core.Process (>= 5.23.1) + Fake.Core.String (>= 5.23.1) + Fake.Core.Trace (>= 5.23.1) + Fake.DotNet.Cli (>= 5.23.1) + Fake.IO.FileSystem (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.IO.FileSystem (5.23.1) + Fake.Core.String (>= 5.23.1) + FSharp.Core (>= 6.0) + Fake.Net.Http (5.23.1) + Fake.Core.Trace (>= 5.23.1) + FSharp.Core (>= 6.0) FParsec (1.1.1) FSharp.Core (>= 4.3.4) FSharp.Control.Reactive (5.0.2) FSharp.Core (>= 4.7.2) System.Reactive (>= 5.0) - FSharp.Core (5.0) - Microsoft.Build (17.0) - Microsoft.Build.Framework (17.0) + FSharp.Core (6.0) + Microsoft.Build (16.10) + Microsoft.Build.Framework (>= 16.10) + Microsoft.NET.StringTools (>= 1.0) + Microsoft.Win32.Registry (>= 4.3) + System.Collections.Immutable (>= 5.0) + System.Configuration.ConfigurationManager (>= 4.7) + System.Reflection.Metadata (>= 1.6) + System.Security.Principal.Windows (>= 4.7) + System.Text.Encoding.CodePages (>= 4.0.1) + System.Text.Json (>= 4.7) + System.Threading.Tasks.Dataflow (>= 4.9) + Microsoft.Build.Framework (16.10) System.Security.Permissions (>= 4.7) - Microsoft.Build.Tasks.Core (17.0) - Microsoft.Build.Framework (>= 17.0) - Microsoft.Build.Utilities.Core (>= 17.0) + Microsoft.Build.Tasks.Core (16.10) + Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Utilities.Core (>= 16.10) Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) System.CodeDom (>= 4.4) @@ -125,8 +136,8 @@ NUGET System.Security.Cryptography.Xml (>= 4.7) System.Security.Permissions (>= 4.7) System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (17.0) - Microsoft.Build.Framework (>= 17.0) + Microsoft.Build.Utilities.Core (16.10) + Microsoft.Build.Framework (>= 16.10) Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) System.Collections.Immutable (>= 5.0) @@ -136,13 +147,13 @@ NUGET Microsoft.NET.StringTools (1.0) System.Memory (>= 4.5.4) System.Runtime.CompilerServices.Unsafe (>= 5.0) - Microsoft.NETCore.Platforms (6.0) - Microsoft.NETCore.Targets (5.0) - Microsoft.Win32.Registry (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (>= 5.0) + Microsoft.NETCore.Platforms (3.1) + Microsoft.NETCore.Targets (1.0.1) + Microsoft.Win32.Registry (4.7) + System.Security.AccessControl (>= 4.7) + System.Security.Principal.Windows (>= 4.7) + Microsoft.Win32.SystemEvents (4.7) + Microsoft.NETCore.Platforms (>= 3.1) Mono.Posix.NETStandard (1.0) MSBuild.StructuredLogger (2.1.545) Microsoft.Build (>= 16.10) @@ -150,70 +161,124 @@ NUGET Microsoft.Build.Tasks.Core (>= 16.10) Microsoft.Build.Utilities.Core (>= 16.10) Newtonsoft.Json (13.0.1) - NuGet.Common (6.0) - NuGet.Frameworks (>= 6.0) - NuGet.Configuration (6.0) - NuGet.Common (>= 6.0) + NuGet.Common (5.11.3) + NuGet.Frameworks (>= 5.11.3) + NuGet.Configuration (5.11.3) + NuGet.Common (>= 5.11.3) System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.0) - NuGet.Packaging (6.0) - Newtonsoft.Json (>= 13.0.1) - NuGet.Configuration (>= 6.0) - NuGet.Versioning (>= 6.0) + NuGet.Frameworks (5.11.3) + NuGet.Packaging (5.11.3) + Newtonsoft.Json (>= 9.0.1) + NuGet.Configuration (>= 5.11.3) + NuGet.Versioning (>= 5.11.3) System.Security.Cryptography.Cng (>= 5.0) System.Security.Cryptography.Pkcs (>= 5.0) - NuGet.Protocol (6.0) - NuGet.Packaging (>= 6.0) - NuGet.Versioning (6.0) - System.Buffers (4.5.1) - System.CodeDom (6.0) - System.Collections.Immutable (6.0) - System.Memory (>= 4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Configuration.ConfigurationManager (6.0) - System.Security.Cryptography.ProtectedData (>= 6.0) - System.Security.Permissions (>= 6.0) - System.Formats.Asn1 (6.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) + NuGet.Protocol (5.11.3) + NuGet.Packaging (>= 5.11.3) + NuGet.Versioning (5.11.3) + System.CodeDom (4.4) + System.Collections (4.0.11) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Collections.Immutable (5.0) + System.Configuration.ConfigurationManager (4.7) + System.Security.Cryptography.ProtectedData (>= 4.7) + System.Security.Permissions (>= 4.7) + System.Drawing.Common (4.7) + Microsoft.NETCore.Platforms (>= 3.1) + Microsoft.Win32.SystemEvents (>= 4.7) + System.Formats.Asn1 (5.0) + System.Globalization (4.0.11) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.IO (4.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Text.Encoding (>= 4.0.11) + System.Threading.Tasks (>= 4.0.11) System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - System.Numerics.Vectors (>= 4.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - System.Numerics.Vectors (4.5) System.Reactive (5.0) - System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.5.4) - System.Reflection.Metadata (6.0) - System.Collections.Immutable (>= 6.0) - System.Resources.Extensions (6.0) - System.Memory (>= 4.5.4) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (6.0) - System.Runtime.InteropServices.WindowsRuntime (4.3) - System.Runtime (>= 4.3) - System.Security.AccessControl (6.0) - System.Security.Principal.Windows (>= 5.0) + System.Reflection (4.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.IO (>= 4.1) + System.Reflection.Primitives (>= 4.0.1) + System.Runtime (>= 4.1) + System.Reflection.Metadata (1.6) + System.Reflection.Primitives (4.0.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Resources.Extensions (4.6) + System.Resources.ResourceManager (4.0.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Globalization (>= 4.0.11) + System.Reflection (>= 4.1) + System.Runtime (>= 4.1) + System.Runtime (4.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime.CompilerServices.Unsafe (5.0) + System.Runtime.Extensions (4.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Runtime.Handles (4.0.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Runtime.InteropServices (4.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Reflection (>= 4.1) + System.Reflection.Primitives (>= 4.0.1) + System.Runtime (>= 4.1) + System.Runtime.Handles (>= 4.0.1) + System.Security.AccessControl (4.7) + Microsoft.NETCore.Platforms (>= 3.1) + System.Security.Principal.Windows (>= 4.7) System.Security.Cryptography.Cng (5.0) - System.Security.Cryptography.Pkcs (6.0) - System.Buffers (>= 4.5.1) - System.Formats.Asn1 (>= 6.0) - System.Memory (>= 4.5.4) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Pkcs (5.0) + System.Formats.Asn1 (>= 5.0) System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.ProtectedData (6.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Xml (6.0) - System.Memory (>= 4.5.4) - System.Security.AccessControl (>= 6.0) - System.Security.Cryptography.Pkcs (>= 6.0) - System.Security.Permissions (6.0) - System.Security.AccessControl (>= 6.0) - System.Security.Principal.Windows (5.0) - System.Text.Encoding.CodePages (6.0) - System.Memory (>= 4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Threading.Tasks.Dataflow (6.0) - System.Threading.Tasks.Extensions (4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + System.Security.Cryptography.ProtectedData (4.7) + System.Security.Cryptography.Xml (4.7) + System.Security.Cryptography.Pkcs (>= 4.7) + System.Security.Permissions (>= 4.7) + System.Security.Permissions (4.7) + System.Security.AccessControl (>= 4.7) + System.Windows.Extensions (>= 4.7) + System.Security.Principal.Windows (4.7) + System.Text.Encoding (4.0.11) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Text.Encoding.CodePages (4.0.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + System.Collections (>= 4.0.11) + System.Globalization (>= 4.0.11) + System.IO (>= 4.1) + System.Reflection (>= 4.1) + System.Resources.ResourceManager (>= 4.0.1) + System.Runtime (>= 4.1) + System.Runtime.Extensions (>= 4.1) + System.Runtime.Handles (>= 4.0.1) + System.Runtime.InteropServices (>= 4.1) + System.Text.Encoding (>= 4.0.11) + System.Threading (>= 4.0.11) + System.Text.Json (4.7) + System.Threading (4.0.11) + System.Runtime (>= 4.1) + System.Threading.Tasks (>= 4.0.11) + System.Threading.Tasks (4.0.11) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Runtime (>= 4.1) + System.Threading.Tasks.Dataflow (4.9) + System.Windows.Extensions (4.7) + System.Drawing.Common (>= 4.7) diff --git a/global.json b/global.json index 3b9f7e3c..97216707 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.401", - "rollForward": "latestMajor" + "version": "6.0.407", + "rollForward": "latestFeature" } } \ No newline at end of file diff --git a/paket.dependencies b/paket.dependencies index ff4ebfdc..0ac7d477 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -3,19 +3,19 @@ source https://api.nuget.org/v3/index.json storage: none framework: net6.0, netstandard2.0 -nuget DocumentFormat.OpenXml -nuget SixLabors.ImageSharp.Drawing prerelease -nuget SixLabors.ImageSharp 2.1.3 +nuget DocumentFormat.OpenXml 3.0.0-beta0003 +nuget DocumentFormat.OpenXml.Framework 3.0.0-beta0003 +nuget SixLabors.ImageSharp.Drawing +nuget SixLabors.ImageSharp 2.1.5 -// hack to run on .net 6 -nuget System.IO.Packaging 6.0 -nuget Microsoft.NETCore.Platforms 6.0 -nuget System.Collections.Immutable 6.0 -nuget System.Reflection.Metadata 6.0 -nuget System.Text.Encoding.CodePages 6.0 +nuget System.IO.Packaging +nuget Microsoft.NETCore.Platforms +nuget System.Collections.Immutable +nuget System.Reflection.Metadata +nuget System.Text.Encoding.CodePages nuget IDisposableAnalyzers nuget Microsoft.NET.Test.Sdk nuget xunit nuget xunit.runner.console -nuget xunit.runner.visualstudio \ No newline at end of file +nuget xunit.runner.visualstudio diff --git a/paket.lock b/paket.lock index c16fe10b..276aca0b 100644 --- a/paket.lock +++ b/paket.lock @@ -2,197 +2,74 @@ STORAGE: NONE RESTRICTION: || (== net6.0) (== netstandard2.0) NUGET remote: https://api.nuget.org/v3/index.json - DocumentFormat.OpenXml (2.19) - System.IO.Packaging (>= 4.7) - IDisposableAnalyzers (4.0.2) - Microsoft.CodeCoverage (17.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.NET.Test.Sdk (17.5) - Microsoft.CodeCoverage (>= 17.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.TestPlatform.TestHost (>= 17.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.NETCore.Platforms (6.0) - Microsoft.NETCore.Targets (5.0) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.TestPlatform.ObjectModel (17.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - NuGet.Frameworks (>= 5.11) + DocumentFormat.OpenXml (3.0.0-beta0003) + DocumentFormat.OpenXml.Framework (>= 3.0.0-beta0003) + DocumentFormat.OpenXml.Framework (3.0.0-beta0003) + System.IO.Packaging (>= 7.0) + IDisposableAnalyzers (4.0.6) + Microsoft.CodeCoverage (17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.NET.Test.Sdk (17.7.2) + Microsoft.CodeCoverage (>= 17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.TestPlatform.TestHost (>= 17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.NETCore.Platforms (7.0.4) + Microsoft.TestPlatform.ObjectModel (17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + NuGet.Frameworks (>= 6.5) System.Reflection.Metadata (>= 1.6) - Microsoft.TestPlatform.TestHost (17.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.TestPlatform.ObjectModel (>= 17.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.TestPlatform.TestHost (17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.TestPlatform.ObjectModel (>= 17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) Newtonsoft.Json (13.0.3) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - NuGet.Frameworks (6.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - runtime.native.System (4.3.1) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.IO.Compression (4.3.2) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - SixLabors.Fonts (1.0.0-beta19) + NuGet.Frameworks (6.7) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + SixLabors.Fonts (1.0) System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.IO.Compression (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.IO.UnmanagedMemoryStream (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Numerics.Vectors (>= 4.5) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Numerics.Vectors (>= 4.5) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.7) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Threading.Tasks.Parallel (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.ValueTuple (>= 4.5) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - SixLabors.ImageSharp (2.1.3) + SixLabors.ImageSharp (2.1.5) System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) System.Numerics.Vectors (>= 4.5) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 5.0) System.Text.Encoding.CodePages (>= 5.0) - SixLabors.ImageSharp.Drawing (1.0.0-beta15) - SixLabors.Fonts (>= 1.0.0-beta18) - SixLabors.ImageSharp (>= 2.1.3) + SixLabors.ImageSharp.Drawing (1.0) + SixLabors.Fonts (>= 1.0) + SixLabors.ImageSharp (>= 2.1.5) System.Buffers (4.5.1) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Collections (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Collections.Concurrent (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.Reflection (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Collections.Immutable (6.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Collections.Immutable (7.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Diagnostics.Debug (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Diagnostics.Tracing (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Globalization (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.IO (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.Compression (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System (>= 4.3) - runtime.native.System.IO.Compression (>= 4.3) - System.Buffers (>= 4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem.Primitives (4.3) - restriction: || (&& (== net6.0) (>= net46)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Runtime (>= 4.3) - System.IO.Packaging (6.0) - System.IO.UnmanagedMemoryStream (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Buffers (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.IO (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Memory (4.5.5) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.IO.Packaging (7.0) + System.Memory (>= 4.5.5) - restriction: == netstandard2.0 + System.Memory (4.5.5) - restriction: == netstandard2.0 System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) System.Numerics.Vectors (4.5) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Reflection (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Reflection.Metadata (6.0) - System.Collections.Immutable (>= 6.0) - System.Reflection.Primitives (4.3) - restriction: || (&& (== net6.0) (< netcoreapp1.1)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.2)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard1.5)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Resources.ResourceManager (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Globalization (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime (4.3.1) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard1.5)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) + System.Reflection.Metadata (7.0.2) + System.Collections.Immutable (>= 7.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (6.0) - System.Runtime.Extensions (4.3.1) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime (>= 4.3.1) - System.Runtime.Handles (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Reflection (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Text.Encoding (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (6.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp3.1)) (== netstandard2.0) + System.Text.Encoding.CodePages (7.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Threading (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Runtime (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Tasks (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Threading.Tasks.Parallel (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - System.Collections.Concurrent (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.ValueTuple (4.5) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - xunit (2.4.2) - xunit.analyzers (>= 1.0) - xunit.assert (>= 2.4.2) - xunit.core (2.4.2) + xunit (2.5) + xunit.analyzers (>= 1.2) + xunit.assert (>= 2.5) + xunit.core (2.5) xunit.abstractions (2.0.3) - xunit.analyzers (1.1) - xunit.assert (2.4.2) + xunit.analyzers (1.2) + xunit.assert (2.5) NETStandard.Library (>= 1.6.1) - xunit.core (2.4.2) - xunit.extensibility.core (2.4.2) - xunit.extensibility.execution (2.4.2) - xunit.extensibility.core (2.4.2) + xunit.core (2.5) + xunit.extensibility.core (2.5) + xunit.extensibility.execution (2.5) + xunit.extensibility.core (2.5) NETStandard.Library (>= 1.6.1) xunit.abstractions (>= 2.0.3) - xunit.extensibility.execution (2.4.2) + xunit.extensibility.execution (2.5) NETStandard.Library (>= 1.6.1) - xunit.extensibility.core (2.4.2) - xunit.runner.console (2.4.2) - xunit.runner.visualstudio (2.4.5) + xunit.extensibility.core (2.5) + xunit.runner.console (2.5) + xunit.runner.visualstudio (2.5)