Dela via


Paketdels-URI:er jämförs nu skiftlägesokänsligt i System.IO.Packaging

Tidigare ansågs delnamn och åsidosättningar som skilde sig åt endast i ASCII-skiftläge (till exempel /part vs /PART) inte vara likvärdiga i System.IO.Packaging, även om OPC-specifikationen (Open Packaging Conventions) kräver ekvivalens utan hänsyn till skiftläge (§7.2.3.5, ECMA-376). Den här ändringen åtgärdar felet och för .NET 5–9 i linje med både .NET Framework och OPC-specifikationen.

Version lanserad

.NET 8

Tidigare beteende

URI-jämförelser var skiftlägeskänsliga. Åsidosättningar av innehållstyp misslyckades om höljet skilde sig mellan del-URI:n och åsidosättningsposten. Vissa icke-kompatibla paket som innehåller duplicerade poster som endast skiljer sig åt i skiftläge (till exempel /part och /PART) kan läsas in, vilket leder till tvetydiga resultat.

Nytt beteende

URI-jämförelser är skiftlägesokänsliga (StringComparison.OrdinalIgnoreCase). Åsidosättningar med olika hölje fungerar nu som förväntat. Paket som inte följer reglerna och innehåller flera poster som endast skiljer sig åt i versaler och gemener avvisas nu när de öppnas. Detta överensstämmer med .NET Framework och OPC-specifikationen.

Typ av brytande ändring

Det här är en beteendeförändring.

Orsak till ändring

Den här ändringen justerar beteendet System.IO.Packaging med:

  • OPC-specifikationen (skiftlägesokänslig URI-ekvivalens är obligatorisk).
  • Det befintliga beteendet i .NET Framework, som redan tillämpar skiftlägesokänslig matchning.

Det förhindrar tvetydiga sökningar och säkerställer konsekventa resultat och åtgärdar dotnet/runtime#112783.

Se till att OPC-paket inte innehåller delnamn som skiljer sig åt från fall till fall, eftersom detta är ogiltigt enligt OPC-specifikationen.

Om du använder paket som bryter mot specifikationen:

  • Kontakta paketförfattaren för att åtgärda paketet.
  • Om du behöver läsa eller inspektera innehållet kan du öppna paketet som ett ZIP-arkiv. Till skillnad från paket-API:et tillämpar ZIP-arkiv inte OPC-regler och gör att du kan komma åt alla poster, inklusive de med motstridiga skiftlägesnamn.

Berörda API:er