Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wcześniej nazwy części i przesłonięcia różniące się tylko wielkością liter ASCII (na przykład /part vs /PART) nie były uważane za równoważne w System.IO.Packaging, mimo że specyfikacja Open Packaging Conventions (OPC) wymaga równoważności nieuwzględniającej wielkości liter (§7.2.3.5, ECMA-376). Ta zmiana naprawia usterkę i wprowadza platformę .NET 5–9 zgodnie ze specyfikacją .NET Framework i OPC.
Wersja wprowadzona
.NET 8
Poprzednie zachowanie
W porównaniach identyfikatorów URI była uwzględniana wielkość liter.
Przesłonięcia typu zawartości nie powiodły się, jeśli wielkość liter różni się między identyfikatorem URI części a wpisem zastąpienia.
Niektóre niezgodne pakiety zawierające zduplikowane wpisy różnią się tylko w przypadku (na przykład /part i /PART) mogą zostać załadowane, co prowadzi do niejednoznacznych wyników.
Nowe zachowanie
Porównania identyfikatorów URI są bez uwzględniania wielkości liter (StringComparison.OrdinalIgnoreCase). Przesłonięcia z różnymi wielkościami działają teraz zgodnie z oczekiwaniami. Niezgodne pakiety zawierające wiele wpisów, które różnią się tylko wielkością liter, są teraz odrzucane przy otwieraniu. Jest to zgodne ze specyfikacją platformy .NET Framework i specyfikacją OPC.
Typ zmiany przełamującej
Jest to zmiana behawioralna.
Przyczyna zmiany
Zmiana ta dostosowuje zachowanie System.IO.Packaging do:
- Specyfikacja OPC (równoważność identyfikatora URI bez uwzględniania wielkości liter jest obowiązkowa).
- Istniejące zachowanie programu .NET Framework, które już wymusza dopasowywanie bez uwzględniania wielkości liter.
Zapobiega niejednoznacznym wyszukiwaniom i zapewnia spójne wyniki, i w ten sposób naprawia dotnet/runtime#112783.
Zalecana akcja
Upewnij się, że pakiety OPC nie zawierają nazw części różniących się tylko wielkością liter, ponieważ jest to nieprawidłowe zgodnie ze specyfikacją OPC.
W przypadku korzystania z pakietów naruszających specyfikację:
- Skontaktuj się z autorem pakietu, aby naprawić pakiet.
- Jeśli musisz odczytać lub sprawdzić zawartość, możesz otworzyć pakiet jako archiwum ZIP. W przeciwieństwie do interfejsu API pakietu, archiwa ZIP nie przestrzegają reguł OPC i zapewniają dostęp do wszystkich elementów, w tym tych z konfliktowymi nazwami różniącymi się wielkością liter.