Condividi tramite


SYSLIB0056: Assembly.LoadFrom che accetta un AssemblyHashAlgorithm è obsoleto

L'overload di Assembly.LoadFrom che accetta un AssemblyHashAlgorithm è obsoleto, a partire da .NET 9. La chiamata nel codice genera un avviso SYSLIB0056 in fase di compilazione.

Motivo dell'obsolescenza

Assembly.LoadFrom(String, Byte[], AssemblyHashAlgorithm) genera in modo incondizionato un NotSupportedException. Si tratta di un'esperienza di sviluppo non ottimale. L'overload sembra un'API valida fino a quando non viene usato e genera un'eccezione in fase di esecuzione. Contrassegnarlo come obsoleto fornisce il segnale necessario in fase di progettazione per non usarlo.

Soluzione alternativa

Usare un overload di Assembly.LoadFrom che non accetta un AssemblyHashAlgorithm.

Eliminare un avviso

Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.

Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.

// Disable the warning.
#pragma warning disable SYSLIB0056

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

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

Per eliminare tutti gli avvisi SYSLIB0056 nel progetto, aggiungere una proprietà <NoWarn> al file di progetto.

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

Per altre informazioni, vedere Non visualizzare gli avvisi.