Missing DLLs in Creating MSI Installer

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()で
   --- 内部例外スタックトレースの終了 ---
   Microsoft.ML.OnnxRuntime.SessionOptions..ctor()で
   Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)で
   IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)で
   --- 内部例外スタックトレースの終了 ---
   IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)で
   IronBarCodeDetection.BarcodeDetect.DetectBarCode()で
   Iron.BarCode.Extensions.cuewjf.ehxbbs(BarcodeDetect tlxjvd)で
   Iron.BarCode.Extensions.cuewjf.ehxbbr(AnyBitmap tlxjvd, Double tlxjve)で
   Iron.BarCode.Extensions.cuewjo.mvanli(AnyBitmap tlxjvd, Double tlxjve)で
   Iron.BarCode.Extensions.cuewjo.mvanlf(Image`1 tlxjvd)で
   Iron.BarCode.Extensions.cuewjo.mvankh(Object tlxjvd)で
   IronBarCode.BarcodeReader.Read(AnyBitmap inputImage, BarcodeReaderOptions barcodeReaderOptions)で
   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 - Inner Exception Stack Trace:    Microsoft.ML.OnnxRuntime.SessionOptions..ctor()で
   Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)で
   IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)で

理由

このエラーは、ライブラリが正常に機能するために必要なファイルを見つけられないために発生します。

解決策

MSIインストーラーがスムーズに動作するために、セットアッププロジェクトに次の3つのファイルを必ず含める必要があります:onnxruntime.dllIronBarcodeInterop.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にあります

この例外を避けるために、すべての3つのファイルをセットアッププロジェクトに追加することを確認してください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 1,935,276 | バージョン: 2025.11 ただ今リリースされました