System.Drawing.Common Alternatives(.NET 7 & Non-Windows)
À partir de .NET6, Microsoft a cessé de prendre en charge System.Drawing.Common sous Linux et macOS. Cette bibliothèque ne fonctionne désormais que sous Windows. Pour plus de détails, voir ledocumentation officielle.
Solutions pour éviter que system.drawing.common ne soit pas pris en charge sur cette plate-forme
.NET6
Sur les systèmes d'exploitation non Windows, une TypeInitializationException
est lancée avec PlatformNotSupportedException
comme exception interne. L'analyseur de plate-forme émet des avertissements au moment de la 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 : The type initializer for 'Gdip' threw an exception.
---- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
Solution temporaire dans .NET6 :
Activez le support des plates-formes non Windows en définissant le commutateur de configuration d'exécution System.Drawing.EnableUnixSupport
à true
dans le fichier runtimeconfig.json
:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
Ajoutez le code suivant au début de votre code :
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
.NET7 et supérieur
À partir de .NET7, Microsoft a complètement supprimé le support pour 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
.
- Paquet NuGet
Pour en savoir plus, visitez le sitedocumentation officielle