Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Några API:er som inte stöds i .NET/.NET Core, och som inte gjorde något vid åtkomst, har ändrats för att nu kasta ett PlatformNotSupportedException vid runtime. Tidigare skulle användning av dessa API:er så småningom resultera i ett körningsfel längre fram; undantagsfelet utlöses nu när typen instansieras eller först används.
Tidigare beteende
I tidigare versioner innebar att anropa AssemblyName.KeyPair eller StrongNameKeyPair(Byte[]) ett no-op. Att anropa StrongNameKeyPair(FileStream) läste dataströmmen men utförde ingen annan funktion.
Nytt beteende
Från och med .NET 6 genererar var och en av de tre berörda API:erna en PlatformNotSupportedException vid körning.
Version lanserad
.NET 6
Typ av brytande ändring
Den här ändringen kan påverka binär kompatibilitet.
Orsak till ändring
Ett program som tidigare anropade API:et kompilerades och kördes, men så snart instansen användes i någon kodväg, utlöstes ett körningsfel. För att göra det tydligare att det här scenariot inte stöds flyttades logiken för undantagskastning till instanskonstruktorn. Om inga instanser skapas genereras även undantaget i offentliga startpunkter som returnerar den här typen, AssemblyName.KeyPairdvs. .
Rekommenderad åtgärd
Stark namnsignering stöds inte i .NET/.NET Core och det finns ingen lösning.
Anmärkning
.NET Core/5+ kontrollerar aldrig signaturer i sin körning. Men om du riktar in dig på plattformsoberoende bibliotek (till exempel ett grundläggande autentiseringspaket som riktar sig mot .NET Standard 2.0, så att det körs på .NET Framework också), är stark namngivning en bra idé för kompatibilitet mellan körningar. .NET Framework fortsätter att framtvinga stark namngivning om den anropande appen är starkt namngiven. Du kan starknamnge samlingar i alla versioner av .NET med hjälp av verktyget Sn.exe. Mer information finns i Stark namnsignering.