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'un en son sürümünü kullandığında, programı çalıştırmak bazen aşağıda gösterildiği gibi bir System.Memory Exception ile sonuçlanabilir.

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ü, aşağıdaki kod ile App.config'yi 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ık aynı derlemenin farklı sürümlerini gerektirdiğinde ortaya çıkabilecek sürüm çatışmalarını önlemeyi amaçlar. Bu yapılandırmayı kullanarak, uygulama çalışma zamanında uygun sürümü yükleyecektir. Yeniden yönlendirme, tüm bileşenleri v4.0.1.2 sürümünü kullanmaya zorlayarak, bahsi geçen istisna olasılığını ortadan kaldırır. Lütfen App.Config'yi değiştirdikten sonra, programın başka bir istisna oluşturmadığını doğrulamak 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 6,136,090 | Sürüm: 2026.7 yeni yayınlandı
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.