SYSLIB0056 : Assembly.LoadFrom qui prend un AssemblyHashAlgorithm est obsolète

La surcharge de Assembly.LoadFrom qui prend un AssemblyHashAlgorithm est obsolète à partir de .NET 9. Son utilisation dans le code génère un avertissement SYSLIB0056 à la compilation.

Motif de l’obsolescence

Assembly.LoadFrom(String, Byte[], AssemblyHashAlgorithm) lance inconditionnellement un NotSupportedException. Il s'agit d'une mauvaise expérience de développement. La surcharge ressemble à une API valide jusqu'à ce qu'elle soit utilisée, et elle est rejetée au moment de l'exécution. En le marquant comme obsolète, vous donnez le signal de conception nécessaire pour ne pas l'utiliser.

Solution de contournement

Utilisez une surcharge de Assembly.LoadFrom qui ne prend pas de AssemblyHashAlgorithm.

Supprimer un avertissement

Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactiver l’avertissement.

// Disable the warning.
#pragma warning disable SYSLIB0056

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

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

Pour supprimer tous les avertissements SYSLIB0056 dans votre projet, ajoutez une propriété <NoWarn> à votre fichier projet.

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

Pour plus d’informations, consultez Supprimer des avertissements.