Partilhar via


SYSLIB0026: X509Certificate e X509Certificate2 são imutáveis

As seguintes APIs de certificado x509 mutáveis são marcadas como obsoletas, começando no .NET 6. Usar essas APIs no código gera aviso SYSLIB0026 em tempo de compilação.

Soluções

Crie uma nova instância de e X509Certificate2 usando uma sobrecarga de X509Certificate construtor que aceita o certificado como entrada. Por exemplo:

// Change this:
cert.Import("/path/to/certificate.crt");

// To this:
cert.Dispose();
cert = new X509Certificate2("/path/to/certificate.crt");

Suprimir um aviso

Se você precisar usar as APIs obsoletas, poderá suprimir o aviso no código ou no arquivo de projeto.

Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e reativar o aviso.

// Disable the warning.
#pragma warning disable SYSLIB0026

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0026

Para suprimir todos os SYSLIB0026 avisos em seu projeto, adicione uma <NoWarn> propriedade ao seu arquivo de projeto.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0026</NoWarn>
  </PropertyGroup>
</Project>

Para obter mais informações, consulte Suprimir avisos.