Skip to content
English
  • There are no suggestions because the search field is empty.

Fixing System.Reflection.TargetInvocationException when using IronOCR with System.Memory version conflict

A version conflict with System.Memory can cause IronOCR to crash during OCR operations. Resolving the version mismatch through a binding redirect can fix the issue.

 

Disclaimer: This issue has been resolved in IronOCR v2026.4.1. We recommend upgrading to this version to benefit from the fix. This article is intended for users who are currently on versions prior to v2026.4.1.

Issue Overview

If you’re encountering the following exception when using IronTesseract().Read() in IronOCR:

System.Reflection.TargetInvocationException (mscorlib.dll)  
"Exception has been thrown by the target of an invocation"

and receiving empty OCR results before the crash, this is likely due to a version conflict between different System.Memory assemblies.

This issue often occurs even in clean projects and may be accompanied by a warning similar to:

Found conflicts between different versions of "System.Memory"...
"System.Memory, Version=4.0.1.2" was chosen because it was primary and "System.Memory, Version=4.0.2.0" was not.


Solution

To resolve the crash, you need to explicitly add a binding redirect in your application’s App.config file. This will force your application to consistently use the version of System.Memory expected by the IronOCR library.

Here’s what to add:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="4.0.2.0" newVersion="4.0.1.2" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

This ensures your application loads version 4.0.1.2 of System.Memory, preventing the crash and restoring correct OCR behavior.