Sistem Belleği İstisnası

This article was translated from English: Does it need improvement?
Translated
View the article in English

Geliştiriciler .NET Framework üzerinde IronOCR'nin en son sürümünü kullandıklarında, aşağıda gösterildiği gibi programın çalıştırılması System.Memory Exception hatasına neden olabilir.

Could not load file or assembly 'System.Memory, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Bu sorun doğrudan IronOCR ile ilgili olmasa da, System.Memory bağımlılıkları ile bilinen uyumluluk zorlukları vardır. Daha yeni bir System.Memory sürümü (örneğin 4.4.5 veya daha sonrası) başka bir bağımlılığın parçası olarak veya doğrudan bir referans olarak yüklendiğinde bile, çalışma zamanı, sürümle ilgili hataları yine de atabilir.

Bu, bazı bağımlılıkların sıkı sürüm bağlamasını yürüttüğünden dolayı, daha yeni, teorik olarak uyumlu sürüm olsa bile belirli bir System.Memory sürümünü bekledikleri için meydana gelir. Sonuç olarak, aşağıda açıklanan geçici çözümü uygulamadığımız sürece hata devam eder.

Çözüm

Bu istisnanın çözümü, App.config'yi aşağıdaki kodla değiştirmektir.

 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
    </dependentAssembly>
    <dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
    </dependentAssembly>
    <dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
XML

Açıklama

Değiştirilen App.Config, birden fazla bağımlılığın aynı derlemenin farklı sürümlerini gerektirmesi durumunda ortaya çıkabilecek sürüm çakışmalarını önlemeyi amaçlamaktadır. Bu yapılandırma kullanıldığında, uygulama çalışma zamanında uygun sürümü yükleyecektir. Yönlendirme, tüm bileşenlerin v4.0.1.2 sürümünü kullanmasını zorlar ve böylece yukarıda bahsedilen istisnanın ortaya çıkma olasılığını ortadan kaldırır. App.Config'yi değiştirdikten sonra, programın başka bir istisna oluşturmadığından emin olmak için uygulamayı yeniden çalıştırın.

Bu konuyla ilgili daha fazla bilgi ve tartışma için istisnayı ve mevcut geçici çözümü ayrıntılandıran GitHub sayfasını burada ziyaret edebilirsiniz.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.