DocumentFormat.OpenXml breaking changes

nuget

14 curated breaking changes across major versions of DocumentFormat.OpenXml. Use this as a migration checklist before bumping dependencies.

14
changes
Breaking changes by transition
  • v3.0.0-beta2 \u2192 v3.0.0-beta3breaking

    Reduced unnecessary target frameworks for packages besides DocumentFormat.OpenXml.Framework (#1471)

  • v3.0.0-beta2 \u2192 v3.0.0-beta3breaking

    Changed some spelling issues for property names (#1463, #1444)

  • v3.0.0-beta1 \u2192 v3.0.0-beta2breaking

    Individual implementations of `OpenXmlPartReader` are available now for each package type (i.e. `WordprocessingDocumentPartReader`, `SpreadsheetDocumentPartReader`, `PresentationDocumentPartReader`), and the previous `TypedOpenXmlPartReader` has been removed.

  • v3.0.0-beta1 \u2192 v3.0.0-beta2breaking

    `OpenXmlElementList` is now a struct that implements `IEnumerable<OpenXmlElement>` and `IReadOnlyList<OpenXmlElement>` (where available)

  • v2.20.0 \u2192 v3.0.0-beta1breaking

    `OpenXmlPackage.CanSave` is now an instance property (#1307)

  • v2.20.0 \u2192 v3.0.0-beta1breaking

    Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.

  • v2.20.0 \u2192 v3.0.0-beta1breaking

    `EnumValue<T>` now is used to box a struct rather than a `System.Enum`. This allows us to enable behavior on it without resorting to reflection

  • v2.20.0 \u2192 v3.0.0-beta1breaking

    Methods on parts to add child parts (i.e. `AddImagePart`) are now implemented as extension methods off of a new marker interface `ISupportedRelationship<T>`

  • v2.20.0 \u2192 v3.0.0-beta1breaking

    Part type info enums (i.e. `ImagePartType`) is no longer an enum, but a static class to expose well-known part types as structs. Now any method to define a new content-type/extension pair can be called with the new `PartTypeInfo` struct that will contain the necessary information.

  • v3.0.0-beta3 \u2192 v3.0.0breaking

    .NET Standard 1.3 is no longer a supported platform. .NET Standard 2.0 is the lowest .NET Standard supported.

  • v3.0.0-beta3 \u2192 v3.0.0breaking

    Methods on parts to add child parts (i.e. `AddImagePart`) are now implemented as extension methods off of a new marker interface `ISupportedRelationship<T>`

  • v3.0.0-beta3 \u2192 v3.0.0breaking

    `EnumValue<T>` now is used to box a struct rather than a `System.Enum`. This allows us to enable behavior on it without resorting to reflection

  • v3.0.0-beta3 \u2192 v3.0.0breaking

    Changed type of `OpenXmlPackage.Package` to `DocumentFormat.OpenXml.Packaging.IPackage` instead of `System.IO.Packaging.Package` with a similar API surface

  • v3.0.0-beta3 \u2192 v3.0.0breaking

    Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/nuget/DocumentFormat.OpenXml
DocumentFormat.OpenXml breaking changes — NuGet migration guide | DepScope