建立MSI安裝程式時缺少DLLs

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

在建立MSI安裝程式時,您可能會遇到以下例外情況:

2025-01-27 16:57:23 - 錯誤: IronBarCodeDetection.Exceptions.IronBarcodeDetectionException: 執行IronBarcode機器學習程式庫時發生意外錯誤。 請將詳細資訊提供給support@ironsoftware.com以解決此問題。 ---> System.TypeInitializationException: 'Microsoft.ML.OnnxRuntime.NativeMethods'的型別初始化拋出了例外。 ---> System.NullReferenceException: 物件參考未設定為物件的實例。
   at Microsoft.ML.OnnxRuntime.NativeMethods..cctor()
   --- 內部例外堆疊追蹤的結束 ---
   at Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
   at Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
   at IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)
   --- 內部例外堆疊追蹤的結束 ---
   at IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)
   at IronBarCodeDetection.BarcodeDetect.DetectBarCode()
   at Iron.BarCode.Extensions.cuewjf.ehxbbs(BarcodeDetect tlxjvd)
   at Iron.BarCode.Extensions.cuewjf.ehxbbr(AnyBitmap tlxjvd, Double tlxjve)
   at Iron.BarCode.Extensions.cuewjo.mvanli(AnyBitmap tlxjvd, Double tlxjve)
   at Iron.BarCode.Extensions.cuewjo.mvanlf(Image`1 tlxjvd)
   at Iron.BarCode.Extensions.cuewjo.mvankh(Object tlxjvd)
   at IronBarCode.BarcodeReader.Read(AnyBitmap inputImage, BarcodeReaderOptions barcodeReaderOptions)
   at WindowsFormsBarcode.Form1.btnBrowse_Click_1(Object sender, EventArgs e)
2025-01-27 16:57:23 - 錯誤訊息: 執行IronBarcode機器學習程式庫時發生意外錯誤。 請將詳細資訊提供給support@ironsoftware.com以解決此問題。
2025-01-27 16:57:23 - 內部例外: 'Microsoft.ML.OnnxRuntime.NativeMethods'的型別初始化拋出了例外。
2025-01-27 16:57:23 - 內部例外堆疊追蹤:    at Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
   at Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
   at IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)

原因

此錯誤發生是因為程式庫無法找到正常執行所需的檔案。

解決方案

為了確保MSI安裝程式順利運行,您必須在設定專案中包含以下三個檔案: ReaderInterop.dll。 這些檔案是在Release模式下構建專案時生成的:

  • onnxruntime.dll: Located at MsiInstallerSample\MsiInstallerSample\bin\Release
  • IronBarcodeInterop.dll: Located at MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\native
  • ReaderInterop.dll: Located at MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\native

確保所有三個檔案都新增到您的設定專案中以避免此例外情況。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
Nuget 下載 2,331,688 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想快速驗證嗎? PM > Install-Package BarCode
運行範例觀看您的字串成為條碼。