Los URI de elemento de paquete ahora se comparan sin distinción entre mayúsculas y minúsculas en System.IO.Packaging

Anteriormente, los nombres y sobrescrituras de elementos que solo diferían en mayúsculas y minúsculas ASCII (por ejemplo, /part frente a /PART) no se consideraban equivalentes en System.IO.Packaging, aunque la especificación de las Convenciones de empaquetado abierto (OPC) requiere equivalencia insensible a mayúsculas y minúsculas (§7.2.3.5, ECMA-376). Este cambio corrige el error y pone .NET 5–9 en línea con .NET Framework y la especificación de OPC.

Versión introducida

.NET 8

Comportamiento anterior

Las comparaciones de URI son sensibles a mayúsculas y minúsculas. Error al sobrescribir el tipo de contenido si hubiera diferencias en mayúsculas y minúsculas entre el URI de la parte y la entrada de sobrescritura. Algunos paquetes no compatibles que contienen entradas duplicadas que solo difieren en mayúsculas y minúsculas (por ejemplo, /part y /PART) pueden cargarse, lo que da lugar a resultados ambiguos.

Nuevo comportamiento

Las comparaciones de URI no distinguen mayúsculas de minúsculas (StringComparison.OrdinalIgnoreCase). Las sobrescrituras con diferentes mayúsculas y minúsculas ahora funcionan según lo previsto. Los paquetes no compatibles que contienen varias entradas que solo difieren por caso ahora se rechazan cuando se abren. Esto se alinea con .NET Framework y la especificación de OPC.

Tipo de cambio disruptivo

Se trata de un cambio de comportamiento.

Motivo del cambio

Este cambio alinea el System.IO.Packaging comportamiento con:

  • La especificación OPC (la equivalencia de URI sin distinción entre mayúsculas y minúsculas es obligatoria).
  • Comportamiento existente de .NET Framework, que ya aplica coincidencias sin distinción de mayúsculas y minúsculas.

Evita búsquedas ambiguas y garantiza resultados coherentes y corrige dotnet/runtime#112783.

Asegúrese de que los paquetes de OPC no contienen nombres de elementos que solo difieren por mayúsculas y minúsculas, ya que esto no es válido según la especificación de OPC.

Si se consumen paquetes que infringen la especificación:

  • Póngase en contacto con el autor del paquete para corregir el paquete.
  • Si necesita leer o inspeccionar el contenido, puede abrir el paquete como un archivo ZIP. A diferencia de la API de paquete, los archivos ZIP no aplican reglas de OPC y le permitirán acceder a todas las entradas, incluidas las que tienen nombres de mayúsculas y minúsculas en conflicto.

Las APIs afectadas