Systemspeicherausnahme

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

Wenn Entwickler die neueste Version von IronOCR auf dem .NET Framework verwenden, kann es vorkommen, dass die Ausführung des Programms zu einem System.Memory Exception führt, wie unten dargestellt.

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)

Obwohl dieses Problem nicht direkt mit IronOCR selbst zusammenhängt, gibt es bekannte Kompatibilitätsprobleme mit System.Memory-Abhängigkeiten. Selbst wenn eine neuere Version von System.Memory (z.B. 4.4.5 oder später) installiert ist—entweder als Teil einer anderen Abhängigkeit oder als direkte Referenz—kann die Laufzeit weiterhin versionsbedingte Fehler auslösen.

Dies geschieht, weil einige Abhängigkeiten strikte Versionsbindung erzwingen, was bedeutet, dass sie eine spezifische Version von System.Memory erwarten, unabhängig davon, ob eine neuere, theoretisch kompatible Version vorhanden ist. Infolgedessen bleibt der Fehler bestehen, es sei denn, wir wenden die unten beschriebene Problemumgehung an.

Lösung

Die Lösung für diese Ausnahme besteht darin, App.config durch den unten stehenden Code zu ersetzen.

 <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

Erklärung

Die modifizierte App.Config zielt darauf ab, Versionskonflikte zu verhindern, die entstehen können, wenn mehrere Abhängigkeiten unterschiedliche Versionen derselben Assembly benötigen. Durch diese Konfiguration lädt die Anwendung zur Laufzeit die passende Version. Die Umleitung zwingt alle Komponenten zur Verwendung der Version v4.0.1.2 und beseitigt so das Risiko der oben genannten Ausnahme. Nach der Änderung von App.Config führen Sie die Anwendung bitte erneut aus, um sicherzustellen, dass das Programm keine weitere Ausnahme auslöst.

Für weitere Informationen und Diskussionen zu diesem Thema können Sie die GitHub-Seite besuchen, die die Ausnahme und die aktuelle Problemumgehung hier im Detail beschreibt.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,556,263 | Version: 2026.3 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronOcr
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihr Bild zu durchsuchbarem Text wird.