SYSLIB0026: X509Certificate и X509Certificate2 являются неизменяемыми
Следующие API изменяемых сертификатов x509 помечены как устаревшие, начиная с .NET 6. При использовании этих API в коде создается предупреждение SYSLIB0026
во время компиляции.
Методы обхода проблемы
Создайте новый экземпляр X509Certificate
и X509Certificate2
с помощью перегрузки конструктора, принимающей сертификат в качестве входных данных. Например:
// Change this:
cert.Import("/path/to/certificate.crt");
// To this:
cert.Dispose();
cert = new X509Certificate2("/path/to/certificate.crt");
Отключение предупреждений
Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.
Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.
// Disable the warning.
#pragma warning disable SYSLIB0026
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0026
Чтобы отключить все SYSLIB0026
предупреждения в проекте, добавьте <NoWarn>
свойство в файл проекта.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0026</NoWarn>
</PropertyGroup>
</Project>
Дополнительные сведения см. в разделе Отключение предупреждений.