建立 MSI 安裝程式時缺少 DLL 檔案

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:物件參考未設定為物件的實例。
   位於 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 - 內部例外堆疊追蹤:    位於 Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
   at Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
   at IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)

理由

發生此錯誤是因為該函式庫無法找到正常運作所需的檔案。

解決方案

為確保 MSI 安裝程式能順利執行,您必須在安裝專案中包含以下三個檔案:IronBarcodeInterop.dll 以及 ReaderInterop.dll。 這些檔案是在您以 Release 模式建置專案時所產生的:

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

請確保將這三個檔案全數加入您的安裝專案中,以避免此例外狀況。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備好開始了嗎?
Nuget 下載 2,240,258 | 版本: 2026.5 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package BarCode
執行範例 看您的字串變成 BarCode。