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.
Kilka interfejsów API, które nie są obsługiwane na platformie .NET/.NET Core i nic nie robiły, gdy uzyskiwano do nich dostęp, zostało zmienionych tak, aby teraz rzucały wyjątek w czasie wykonywania. Wcześniej użycie tych interfejsów API ostatecznie powodowało wyjątek środowiska uruchomieniowego w późniejszym czasie; teraz wyjątek jest zgłaszany, gdy typ jest instancjonowany lub po jego pierwszym dostępie.
Poprzednie zachowanie
W poprzednich wersjach wywołanie AssemblyName.KeyPair lub StrongNameKeyPair(Byte[]) było zjawiskiem związanym z no-op. Wywołanie StrongNameKeyPair(FileStream) odczytało strumień, ale poza tym nie wykonało żadnej innej akcji.
Nowe zachowanie
Począwszy od platformy .NET 6, każdy z trzech dotkniętych interfejsów API zgłasza PlatformNotSupportedException błąd w czasie wykonywania.
Wersja wprowadzona
.NET 6
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność binarną.
Przyczyna zmiany
Wcześniej aplikacja, która wywołała interfejs API, skompilowała się i uruchomiła, ale gdy tylko instancja została użyta w dowolnej ścieżce kodu, zgłaszała wyjątek w czasie wykonywania programu. Aby bardziej wyraźnie zaznaczyć, że ten scenariusz jest nieobsługiwany, logika zgłaszania wyjątków została przeniesiona do konstruktora instancji. W przypadku, gdy nie są tworzone żadne wystąpienia, wyjątek jest również zgłaszany w publicznych punktach wejścia, które zwracają ten typ, czyli AssemblyName.KeyPair.
Zalecana akcja
Sygnowanie mocną nazwą nie jest obsługiwane na platformie .NET/.NET Core i nie ma sposobu obejścia.
Uwaga / Notatka
Platforma .NET Core/5+ nigdy nie sprawdza podpisów w swoim środowisku uruchomieniowym. Jeśli jednak celem są biblioteki cross-platformowe (na przykład podstawowy pakiet uwierzytelniania przeznaczony dla .NET Standard 2.0, dzięki czemu działa on również na .NET Framework), silne nazewnictwo jest dobrym pomysłem dla zgodności między środowiskami uruchomieniowymi. Program .NET Framework nadal wymusza silne nazewnictwo, jeśli aplikacja wywołująca ma silną nazwę. Zestawy można oznaczać silną nazwą we wszystkich wersjach platformy .NET przy użyciu narzędzia Sn.exe. Aby uzyskać więcej informacji, zobacz Podpisywanie mocnej nazwy.
Interfejsy API, których dotyczy problem
Zobacz także
- Jak podpisać zestaw przy użyciu silnej nazwy