Поделиться через


SYSLIB0028: свойство X509Certificate2.PrivateKey устарело

Свойство X509Certificate2.PrivateKey помечено как устаревшее, начиная с .NET 6. При использовании этого API во время компиляции создается предупреждение SYSLIB0028.

Методы обхода проблемы

Используйте соответствующий метод для получения закрытого ключа, например RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), или используйте метод X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) для создания нового экземпляра с закрытым ключом.

Отключение предупреждений

Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.

Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.

// Disable the warning.
#pragma warning disable SYSLIB0028

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

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

Чтобы отключить все SYSLIB0028 предупреждения в проекте, добавьте <NoWarn> свойство в файл проекта.

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

Дополнительные сведения см. в разделе Отключение предупреждений.