System.Drawing.Common Alternatifleri (.NET 7 ve Windows Dışı)
Bu platformda 'System.Drawing.Common desteklenmiyor'dan kaçınmak için Çevresel Çözüm Yolları
- System.Drawing.Common uygulaması .NET 6 ve .NET 7 için Linux ve macOS platformlarında mümkün değildir.
- "Bu platformda System.Drawing.Common desteklenmiyor" belirten bir istisna mesajı alacaksınız.
- .NET 6 için System.Drawing.EnableUnixSupport çalışma zamanı yapılandırmasını true olarak ayarlayın.
- .NET 7'de de desteğin artık mevcut olmadığını unutmayın.
- IronSoftware.Drawing açık kaynaklı kütüphanesini, .NET 7 için System.Drawing.Common yerine kullanın.
.NET 6 ve .NET 7'de, Microsoft Linux ve macOS üzerinde System.Drawing.Common desteğini durdurdu. Kütüphane sadece resmi belgelere göre Windows platformlarında çalışacaktır.
- Windows dışı işletim sistemlerinde,
TypeInitializationException, iç istisna olarakPlatformNotSupportedExceptionile fırlatılır. - .NET 6'da, platform analizcisi, System.Drawing.Common referanslı kodları Windows dışı işletim sistemleri için derlendiğinde derleme zamanında uyarılar verir. Ayrıca, bir yapılandırma seçeneği ayarlanmamışsa, aşağıdaki çalışma zamanı istisnası atılır:
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
.NET 6'da Geçici Çözüm:
System.Drawing.EnableUnixSupport çalışma zamanı yapılandırma anahtarını true olarak ayarlayarak Windows dışı platformlar için desteği etkinleştirin runtimeconfig.json dosyasında:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
Unix desteğini programatik olarak etkinleştirmek için kodunuzun başına şu kodu ekleyin:
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
.NET 7
.NET 7'nin yayınlanmasıyla birlikte, Microsoft geçici çözümleri kaldırarak Linux ve macOS üzerinde System.Drawing.Common desteğini tamamen kaldırdı.
Iron Software, System.Drawing.Common için IronSoftware.Drawing adlı bir açık kaynaklı yedek yayınladı. NuGet ve GitHub üzerinde bulabilirsiniz.
Daha fazla bilgi almak için, dökümantasyon sayfasını ziyaret edebilirsiniz: IronSoftware Drawing Dökümantasyonu

