Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Počínaje rozhraním .NET 5 některé rozhraní API, která jsou nově označena jako zastaralá, využívají dvě nové vlastnosti .ObsoleteAttribute
- Vlastnost ObsoleteAttribute.DiagnosticId říká kompilátoru, aby generoval upozornění sestavení pomocí vlastního diagnostického ID. Vlastní ID umožňuje konkrétně a odděleně potlačovat upozornění na zastarání. V případě zastarání oboru názvů
System*je formát vlastního ID diagnostikySYSLIB0XXX. V případěMicrosoft.Extensionszastaralostí je formát vlastního diagnostického IDEXTOBS0XXX. - Vlastnost ObsoleteAttribute.UrlFormat určuje kompilátoru, aby zahrnul URL odkaz pro získání více informací o zastarání.
Pokud v důsledku použití zastaralého rozhraní API narazíte na upozornění nebo chyby sestavení, postupujte podle konkrétních pokynů uvedených pro ID diagnostiky uvedené v následujících referenčních tabulkách. Upozornění nebo chyby pro tato zastarávání nelze potlačit pomocí standardního diagnostického ID (CS0618) pro zastaralé typy nebo členy; místo toho použijte vlastní SYSLIB0XXX diagnostické ID hodnoty nebo EXTOBS0XXX ID diagnostiky. Další informace naleznete v tématu Potlačení upozornění.
Následující tabulky poskytují index zastaralých rozhraní API s vlastními DIAGNOSTICKÝmi ID v .NET 5 a novějších verzích:
Zastarání SYSLIB
Následující tabulka uvádí SYSLIB0XXX obsoletions v .NET 5+.
| Diagnostické ID | Upozornění nebo chyba | Popis |
|---|---|---|
| SYSLIB0001 | Varování | Kódování UTF-7 je nezabezpečené a nemělo by se používat. Zvažte místo toho použití UTF-8. |
| SYSLIB0002 | Chyba | PrincipalPermissionAttribute není podporován prostředím runtime a nesmí se používat. |
| SYSLIB0003 | Varování | Runtime nepodporuje ani neakceptuje zabezpečení přístupu kódu (CAS). |
| SYSLIB0004 | Varování | Funkce oblasti omezeného spuštění (CER) není podporovaná. |
| SYSLIB0005 | Varování | Globální mezipaměť sestavení (GAC) není podporována. |
| SYSLIB0006 | Varování | Thread.Abort() není podporován a vyvolá PlatformNotSupportedException. |
| SYSLIB0007 | Varování | Výchozí implementace tohoto kryptografického algoritmu není podporována. |
| SYSLIB0008 | Varování | Rozhraní CreatePdbGenerator() API není podporováno a vyvolává PlatformNotSupportedException. |
| SYSLIB0009 | Varování | AuthenticationManager se nepodporuje. Metody budou mít nulovou operaci nebo vyvolají PlatformNotSupportedException. |
| SYSLIB0010 | Varování | Některá vzdálená rozhraní API nejsou podporována a vyvolají PlatformNotSupportedException. |
| SYSLIB0011 | Varování | BinaryFormatter serializace je zastaralá a neměla by být použita. |
| SYSLIB0012 | Varování | Assembly.CodeBase a Assembly.EscapedCodeBase jsou zahrnuty pouze pro kompatibilitu rozhraní .NET Framework. Místo toho použijte Assembly.Location. |
| SYSLIB0013 | Varování | Uri.EscapeUriString(String) může v některých případech poškodit řetězec identifikátoru URI. Místo toho zvažte použití Uri.EscapeDataString(String) pro komponenty řetězce dotazu. |
| SYSLIB0014 | Varování | WebRequest, HttpWebRequesta ServicePointWebClient jsou zastaralé. Místo toho použijte HttpClient. |
| SYSLIB0015 | Varování | DisablePrivateReflectionAttribute nemá žádný vliv na .NET 6 nebo novější. |
| SYSLIB0016 | Varování | Použijte přetížení Graphics.GetContextInfo, která přijímají argumenty, pro lepší výkon a méně alokací. |
| SYSLIB0017 | Varování | Podepisování silným názvem není podporováno a vyvolá PlatformNotSupportedException. |
| SYSLIB0018 | Varování | Načítání pouze reflexe není podporováno a vyvolá PlatformNotSupportedException. |
| SYSLIB0019 | Varování | Členové System.Runtime.InteropServices.RuntimeEnvironment, SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid) a GetRuntimeInterfaceAsObject(Guid, Guid) již nejsou podporovány a vyvolají PlatformNotSupportedException. |
| SYSLIB0020 | Varování | JsonSerializerOptions.IgnoreNullValues je zastaralá. Pokud chcete při serializaci ignorovat hodnoty null, nastavte DefaultIgnoreCondition hodnotu JsonIgnoreCondition.WhenWritingNull. |
| SYSLIB0021 | Varování | Odvozené kryptografické typy jsou zastaralé. Místo toho použijte metodu Create základního typu. |
| SYSLIB0022 | Varování | Rijndael a RijndaelManaged typy jsou zastaralé. Místo toho použijte Aes. |
| SYSLIB0023 | Varování | RNGCryptoServiceProvider je zastaralá. Pokud chcete vygenerovat náhodné číslo, použijte místo toho jednu ze statických RandomNumberGenerator metod. |
| SYSLIB0024 | Varování | Vytváření a uvolňování domén AppDomains není podporováno a vyvolá výjimku. |
| SYSLIB0025 | Varování | SuppressIldasmAttribute nemá žádný vliv na .NET 6 nebo novější. |
| SYSLIB0026 | Varování | X509Certificate a X509Certificate2 jsou neměnné. Pomocí příslušného konstruktoru vytvořte nový certifikát. |
| SYSLIB0027 | Varování | PublicKey.Key je zastaralá. Pomocí příslušné metody získejte veřejný klíč, například GetRSAPublicKey(). |
| SYSLIB0028 | Varování | X509Certificate2.PrivateKey je zastaralá. Použijte příslušnou metodu k získání privátního klíče, například RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), nebo použijte metodu X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) k vytvoření nové instance s privátním klíčem. |
| SYSLIB0029 | Varování |
ProduceLegacyHmacValues je zastaralá. Vytváření starších hodnot HMAC se už nepodporuje. |
| SYSLIB0030 | Varování |
HMACSHA1 vždy používá implementaci algoritmu poskytovanou platformou. Použijte konstruktor bez parametru useManagedSha1 . |
| SYSLIB0031 | Varování | CryptoConfig.EncodeOID(String) je zastaralá. Použijte funkci ASN.1, která je součástí System.Formats.Asn1. |
| SYSLIB0032 | Varování | Obnovení z výjimek poškozeného stavu procesu není podporováno; ignoruje se HandleProcessCorruptedStateExceptionsAttribute. |
| SYSLIB0033 | Varování | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) je zastaralý a nepodporuje se. Místo toho použijte PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]). |
| SYSLIB0034 | Varování | CmsSigner(CspParameters) je zastaralá. Místo toho použijte alternativní konstruktor. |
| SYSLIB0035 | Varování | SignerInfo.ComputeCounterSignature() je zastaralá. Použijte přetížení, které místo toho přijme CmsSigner . |
| SYSLIB0036 | Varování |
Regex.CompileToAssembly je zastaralý a nepodporuje se. Místo toho použijte RegexGeneratorAttribute s generátorem zdrojového kódu pro regulární výrazy. |
| SYSLIB0037 | Varování | AssemblyNamečlenovéHashAlgorithm, ProcessorArchitecture, a VersionCompatibility jsou zastaralé a nejsou podporovány. |
| SYSLIB0038 | Varování | SerializationFormat.Binary je zastaralý a neměl by se používat. |
| SYSLIB0039 | Varování | Protokol TLS verze 1.0 a 1.1 obsahují známá ohrožení zabezpečení a nedoporučuje se. Místo toho použijte novější verzi protokolu TLS nebo použijte SslProtocols.None k odložení výchozích hodnot operačního systému. |
| SYSLIB0040 | Varování | EncryptionPolicy.NoEncryption k EncryptionPolicy.AllowNoEncryption výrazně snižují zabezpečení a by neměly být používány v produkčním kódu. |
| SYSLIB0041 | Varování | Výchozí algoritmus hash a počty iterací v Rfc2898DeriveBytes konstruktorech jsou zastaralé a nezabezpečené. Použijte konstruktor, který přijímá algoritmus hash a počet iterací. |
| SYSLIB0042 | Varování |
ToXmlString a FromXmlString nemají žádnou implementaci pro typy kryptografie eliptických křivek (ECC) a jsou zastaralé. Použijte standardní formát pro import a export, jako je ExportSubjectPublicKeyInfo nebo ImportSubjectPublicKeyInfo pro veřejné klíče a ExportPkcs8PrivateKey nebo ImportPkcs8PrivateKey pro soukromé klíče. |
| SYSLIB0043 | Varování | ECDiffieHellmanPublicKey.ToByteArray() a přidružený konstruktor nemá konzistentní a interoperabilní implementaci na všech platformách. Místo toho použijte ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). |
| SYSLIB0044 | Varování | AssemblyName.CodeBase a AssemblyName.EscapedCodeBase jsou zastaralé. Použití jich pro načtení sestavení není podporováno. |
| SYSLIB0045 | Varování | Tovární kryptografické metody, které přijímají jméno algoritmu, jsou zastaralé. Místo toho použijte metodu bez parametrů Create objektu pro vytváření pro typ algoritmu. |
| SYSLIB0046 | Varování | Metoda ControlledExecution.Run(Action, CancellationToken) může poškodit proces a neměl by být použit v produkčním kódu. |
| SYSLIB0047 | Varování |
XmlSecureResolver je zastaralá. Místo toho použijte XmlResolver.ThrowingResolver, pokud chcete zakázat vyřešení externích entit XML. |
| SYSLIB0048 | Varování | RSA.EncryptValue(Byte[]) a RSA.DecryptValue(Byte[]) jsou zastaralé. Použijte RSA.Encrypt a RSA.Decrypt místo toho. |
| SYSLIB0049 | Varování | JsonSerializerOptions.AddContext je zastaralý. Chcete-li zaregistrovat JsonSerializerContext, použijte buď TypeInfoResolver nebo TypeInfoResolverChain vlastnost. |
| SYSLIB0050 | Varování | Serializace založená na formátovacím formátu je zastaralá a neměla by být použita. |
| SYSLIB0051 | Varování | Rozhraní API, která podporují zastaralé serializace založené na formátovačích, jsou zastaralá. Neměly by být volány ani rozšířeny kódem aplikace. |
| SYSLIB0052 | Varování | Zastaralá jsou rozhraní API, která podporují zastaralé mechanismy rozšiřitelnosti regulárních výrazů. |
| SYSLIB0053 | Varování | AesGcm by měla označit požadovanou velikost značky pro šifrování a dešifrování. Použijte konstruktor, který přijímá velikost značky. |
| SYSLIB0054 | Varování | Thread.VolatileRead a Thread.VolatileWrite jsou zastaralé. Použijte Volatile.Read nebo Volatile.Write místo toho. |
| SYSLIB0055 | Varování |
AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* metody s podepsanými parametry jsou zastaralé. Místo toho použijte nepodepsané přetížení. |
| SYSLIB0056 | Varování |
Assembly.LoadFrom s vlastním AssemblyHashAlgorithm je zastaralý. Použijte přetížení bez AssemblyHashAlgorithm. |
| SYSLIB0057 | Varování |
X509Certificate2 a X509Certificate konstruktory pro binární obsah a obsah souboru jsou zastaralé. |
| SYSLIB0058 | Varování | Zastaralé jsou vlastnosti KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherAlgorithmStrength, HashAlgorithma HashStrength objektu SslStream. Místo toho použijte NegotiatedCipherSuite. |
| SYSLIB0059 | Varování | SystemEvents.EventsThreadShutdown zpětná volání se nespustí před ukončením procesu. Místo toho použijte AppDomain.ProcessExit. |
| SYSLIB0060 | Varování | Konstruktory System.Security.Cryptography.Rfc2898DeriveBytes jsou zastaralé. Místo toho použijte Rfc2898DeriveBytes.Pbkdf2. |
| SYSLIB0061 | Varování | Zastaralé je používání QueryableQueryable.MaxBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>) a Queryable.MinBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>) při převzetí IComparer<TSource>. Použijte nové, které podporují IComparer<TKey>. |
| SYSLIB0062 | Varování | XsltSettings.EnableScript je zastaralá. |
| SYSLIB0063 | Varování | Konstruktor NamedPipeClientStream , který má isConnected parametr, je zastaralý, protože argument nemá žádný vliv. Použijte konstruktor, který přijímá direction, isAsynca safePipeHandle. |
| SYSLIB0064 | Varování | RSACryptoServiceProvider.Encrypt(Byte[], Boolean) a RSACryptoServiceProvider.Decrypt(Byte[], Boolean) jsou zastaralé. Použijte místo toho přetížení, která přijímají RSAEncryptionPadding. |
| SYSLIB0065 | Varování | Přístupová metoda set objektu AsnEncodedData.RawData je zastaralá. Pomocí konstruktoru příslušného typu dekódujte data nebo ho použijte AsnEncodedData.CopyFrom(AsnEncodedData) pro proměnlivé scénáře. |
Zastarání EXTOBS
Následující tabulka uvádí EXTOBS0XXX zastaralosti z těchto Microsoft.Extensions knihoven.
| Diagnostické ID | Upozornění nebo chyba | Popis |
|---|---|---|
| EXTOBS0001 | Varování | IResourceMonitor je zastaralý a bude odebrán v budoucí verzi. Zvažte použití pozorovatelných nástrojů monitorování zdrojů. |
| EXTOBS0002 | Varování | Metody AddServiceLogEnricher rozšíření byly označeny jako zastaralé počínaje balíčkem verze 10.1.0. Metody obohacují aplikační protokoly, nikoli protokoly služby, takže byly nahrazeny správně pojmenovanými AddApplicationLogEnricher metodami. |
Potlačení upozornění
Doporučujeme použít dostupné alternativní řešení, kdykoli je to možné. Pokud ale nemůžete změnit kód, můžete potlačit upozornění prostřednictvím #pragma direktivy nebo <NoWarn> nastavení projektu. Pokud musíte použít zastaralá rozhraní API a SYSLIB0XXXEXTOBS0XXX diagnostika se nezobrazí jako chyba, můžete potlačit upozornění v kódu nebo v souboru projektu.
Potlačení upozornění v kódu:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
K potlačení upozornění v souboru projektu:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB0001 project-wide -->
<NoWarn>$(NoWarn);SYSLIB0001</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB0002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB0003</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB0001;SYSLIB0002;SYSLIB0003</NoWarn>
</PropertyGroup>
</Project>
Poznámka
Potlačení upozornění tímto způsobem pouze zakáže vámi zadaná upozornění na zastaralosti. Nezakazuje žádná jiná upozornění, včetně upozornění na zastaralost s různými diagnostickými ID.