IronOCR OCR 프로그램 이미지 텍스트 변환 시 시스템 메모리 예외 오류 해결
개발자가 .NET Framework에서 IronOCR의 최신 버전을 사용할 때, 프로그램을 실행하면 아래와 같이 System.Memory Exception가 발생하는 경우가 있습니다.
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)
이 문제는 IronOCR 자체와 직접적인 관련은 없지만, System.Memory 종속성과의 호환성 문제로 인한 것으로 알려져 있습니다. 다른 종속성의 일부로든 직접 참조로든 새 버전의 System.Memory(예: 4.4.5 이상)가 설치되어 있어도 런타임 중에 여전히 버전 관련 오류가 발생할 수 있습니다.
이는 일부 종속성이 엄격한 버전 바인딩을 적용하여 특정 버전의 System.Memory를 기대하기 때문이며, 이로 인해 잠재적으로 호환 가능한 새 버전이 존재하더라도 오류가 발생할 수 있습니다. 결과적으로, 아래 설명된 해결 방법을 적용하지 않는 한 오류가 계속 발생합니다.
해결책
이 예외의 해결책은 아래의 코드로 App.config를 수정하는 것입니다.
<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>
설명
수정된 App.Config는 여러 종속성이 동일 어셈블리의 다른 버전을 요구할 때 발생할 수 있는 버전 충돌을 방지하는 것을 목표로 합니다. 이 구성을 사용하면 애플리케이션이 런타임에 적절한 버전을 로드하게 됩니다. 리다이렉트는 모든 구성 요소가 v4.0.1.2 버전을 사용하도록 강제하여 앞서 언급된 예외의 가능성을 제거합니다. 수정된 App.Config 후, 프로그램이 또 다른 예외를 발생시키지 않도록 애플리케이션을 다시 실행하십시오.
이 주제에 대한 추가 정보 및 논의를 보고 싶다면 예외와 현재의 해결 방법을 자세히 설명하는 GitHub 페이지를 방문하십시오: 여기.

