Sistem Bellek İstisnası

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

Geliştiriciler, .NET Framework uzerinde en son sürüm IronOCR'yi kullandiklarinda, programin calisitirilmasi durumunda asagida gösterildigi gibi System.Memory Exception ile karsilasilabilecek durumlar vardir.

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. System.Memory'nin daha yeni bir sürümü (örneğin, 4.4.5 veya daha sonrası) yüklü olsa bile, ister başka bir bağımlılığın parçası ister doğrudan bir referans olsun, çalışma zamanı yine de sürümle ilgili hatalar atabilir.

Bu, bazı bağımlılıkların sıkı sürüm bağlamasını zorlaması nedeniyle, yani teorik olarak uyumlu bir daha yeni sürüm mevcut olup olmadığına bakılmaksızın, belirli bir System.Memory sürümünü bekledikleri için meydana gelir. Sonuç olarak, aşağıda açıklanan geçici çözümü uygulamadan bu hata devam eder.

Çözüm

Bu istisnanin cozumunu, asagidaki kod ile App.config'i değiştirerek bulabilirsiniz.

 <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ştirilmis App.Config, ayni derlemenin farkli surumlerini gerektiren birden fazla bagimliliga sahip olmak durumunda olusabilecek version catismalarini onlemeyi amaclamaktadir. Bu yapılandırmayı kullanarak, uygulama calisma zamaninda uygun surumu yukleyecektir. Yeniden yönlendirme, tüm bilesenlerin v4.0.1.2 surumunu kullanmasini zorunlu kilmakta olup, daha once bahsedilen istisna potansiyelini ortadan kaldirmaktadir. App.Config'i değiştirdikten sonra, programin baska bir istisna oluşturmadigindan emin olmak icin lutfen uygulamayi tekrar calistirin.

Bu konuya ilişkin daha fazla bilgi ve görüşler için, istisna ve mevcut geçici çözüm detaylandırılan GitHub sayfasını ziyaret edebilirsiniz burada.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.