系統記憶體異常

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

當開發人員在 .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>
XML

解釋

修改後的App.Config旨在防止多個相依性需要同一組件的不同版本時可能出現的版本衝突。 透過此配置,應用程式將在運行時載入相應的版本。重定向強制所有元件使用v4.0.1.2版本,從而消除上述異常的可能性。 修改App.Config後,請重新執行應用程序,以確保程式不會引發其他異常。

有關此主題的更多資訊和討論,您可以訪問 GitHub 頁面,其中詳細介紹了異常和當前的解決方法。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 5,246,844 | 版本: 2025.12 剛發表