Alternatives de System.Drawing.Common (.NET 7 & Non-Windows)
À partir de .NET 6, Microsoft a cessé de prendre en charge System.Drawing.Common sur Linux et macOS. Cette bibliothèque ne fonctionnera désormais que sous Windows. Pour plus de détails, consultez la documentation officielle.
Solutions de contournement pour éviter l'erreur "System.Drawing.Common n'est pas pris en charge sur cette plate-forme"
.NET 6
Sur les systèmes d'exploitation non Windows, une exception TypeInitializationException est levée avec une exception PlatformNotSupportedException comme exception interne. L'analyseur de plate-forme émet des avertissements de compilation pour les plates-formes non-Windows. L'exception d'exécution suivante est levée à moins que vous ne définissiez une option de configuration :
System.TypeInitializationException : L'initialiseur de type pour 'Gdip' a levé une exception.
---- System.PlatformNotSupportedException : System.Drawing.Common n'est pas pris en charge sur les plates-formes non-Windows.
Solution temporaire dans .NET 6 :
Activez la prise en charge des plateformes non-Windows en définissant le commutateur de configuration d'exécution System.Drawing.EnableUnixSupport sur true dans le fichier runtimeconfig.json :
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
Ajoutez également la ligne suivante au début de votre code pour activer la configuration de manière programmatique :
// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
.NET 7 et versions ultérieures
À partir de .NET 7, Microsoft a complètement supprimé la prise en charge de System.Drawing.Common sur Linux et macOS, y compris la solution de contournement précédemment disponible.
Iron Software a publié un remplacement open-source pour System.Drawing.Common, appelé IronSoftware.Drawing.
Pour en savoir plus, visitez la documentation officielle.

