IronBarcode - Alternative à System.Drawing.Common
Iron Software propose un remplacement open-source pour System.Drawing.Common appelé IronDrawing . Pour en savoir plus sur IronDrawing, cliquez ici .
À partir de .NET 6, System.Drawing.Common ne fonctionnera que sous Windows .
- Sur les systèmes d'exploitation non Windows, à moins que vous ne définissiez un commutateur de configuration d'exécution, une exception
TypeInitializationExceptionest levée avecPlatformNotSupportedExceptioncomme exception interne. - Dans .NET 6, l'analyseur de plateforme émet des avertissements lors de la compilation lorsque du code référençant est compilé pour des systèmes d'exploitation autres que Windows. De plus, l'exception d'exécution suivante est levée sauf si vous définissez 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. See https://aka.ms/systemdrawingnonwindows for more information.
Stack Trace:
at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr& bitmap)
/_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(42,0): at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm)
/_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(25,0): at System.Drawing.Bitmap..ctor(String filename)
/_/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs(270,0): at System.Resources.Tests.ResourceManagerTests.EnglishImageResourceData()+MoveNext()
/_/src/libraries/System.Linq/src/System/Linq/Select.cs(136,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
----- Inner Stack Trace -----
/_/src/libraries/System.Drawing.Common/src/System/Drawing/LibraryResolver.cs(31,0): at System.Drawing.LibraryResolver.EnsureRegistered()
/_/src/libraries/System.Drawing.Common/src/System/Drawing/GdiplusNative.Unix.cs(65,0): at System.Drawing.SafeNativeMethods.Gdip.PlatformInitialize()
/_/src/libraries/System.Drawing.Common/src/System/Drawing/Gdiplus.cs(27,0): at System.Drawing.SafeNativeMethods.Gdip..cctor()
Solution de contournement temporaire : 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
}
}
}
Voici la solution actuelle de Microsoft pour la prise en charge de System.Drawing dans .NET 6 : https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

