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


SYSLIB0056: Assembly.LoadFrom, принимающее assemblyHashAlgorithm, устарело

Перегрузка Assembly.LoadFrom , которая принимает устаревшую версию AssemblyHashAlgorithm , начиная с .NET 9. Вызов в коде создает предупреждение SYSLIB0056 во время компиляции.

Причина обсоления

Assembly.LoadFrom(String, Byte[], AssemblyHashAlgorithm) безусловно бросает NotSupportedException. Это плохой опыт разработки. Перегрузка выглядит как допустимый API, пока он не будет использован, и он вызывается во время выполнения. Маркировка как устаревшая дает необходимый сигнал времени разработки, чтобы не использовать его.

Обходное решение

Используйте перегрузку Assembly.LoadFrom , которая не принимает AssemblyHashAlgorithm.

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

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

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

// Disable the warning.
#pragma warning disable SYSLIB0056

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

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

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

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

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