Brakujące biblioteki DLL w tworzeniu instalatora MSI
Podczas tworzenia instalatora MSI możesz napotkać następujący wyjątek:
2025-01-27 16:57:23 - Błąd: IronBarCodeDetection.Exceptions.IronBarcodeDetectionException: Wystąpił nieoczekiwany błąd podczas wykonywania biblioteki uczenia maszynowego IronBarcode. Prosimy o przesłanie szczegółów na support@ironsoftware.com w celu rozwiązania problemu. ---> System.TypeInitializationException: Inicjalizator typu dla 'Microsoft.ML.OnnxRuntime.NativeMethods' zgłosił wyjątek. ---> System.NullReferenceException: Referencja do obiektu nie została ustawiona na żadną instancję obiektu.
w Microsoft.ML.OnnxRuntime.NativeMethods..cctor()
--- Koniec śladu stosu wyjątku wewnętrznego ---
w Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
w Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
w IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)
--- Koniec śladu stosu wyjątku wewnętrznego ---
w IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)
w IronBarCodeDetection.BarcodeDetect.DetectBarCode()
w Iron.BarCode.Extensions.cuewjf.ehxbbs(BarcodeDetect tlxjvd)
w Iron.BarCode.Extensions.cuewjf.ehxbbr(AnyBitmap tlxjvd, Double tlxjve)
w Iron.BarCode.Extensions.cuewjo.mvanli(AnyBitmap tlxjvd, Double tlxjve)
w Iron.BarCode.Extensions.cuewjo.mvanlf(Image`1 tlxjvd)
w Iron.BarCode.Extensions.cuewjo.mvankh(Object tlxjvd)
w IronBarCode.BarcodeReader.Read(AnyBitmap inputImage, BarcodeReaderOptions barcodeReaderOptions)
w WindowsFormsBarcode.Form1.btnBrowse_Click_1(Object sender, EventArgs e)
2025-01-27 16:57:23 - Komunikat o błędzie: Wystąpił nieoczekiwany błąd podczas wykonywania biblioteki uczenia maszynowego IronBarcode. Prosimy o przesłanie szczegółów na support@ironsoftware.com w celu rozwiązania problemu.
2025-01-27 16:57:23 - Wewnętrzny wyjątek: Inicjalizator typu dla 'Microsoft.ML.OnnxRuntime.NativeMethods' zgłosił wyjątek.
2025-01-27 16:57:23 - Ślad stosu wewnętrznego wyjątku: w Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
w Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
w IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)
Powod
Ten błąd występuje, ponieważ biblioteka nie może znaleźć wymaganych plików, aby działać poprawnie.
Rozwiązanie
Aby upewnić się, że instalator MSI działa płynnie, należy dołączyć trzy poniższe pliki do projektu instalacyjnego: onnxruntime.dll, IronBarcodeInterop.dll oraz ReaderInterop.dll. Pliki te są generowane podczas kompilacji projektu w trybie Release:
onnxruntime.dll: Located at MsiInstallerSample\MsiInstallerSample\bin\ReleaseIronBarcodeInterop.dll: Located at MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\nativeReaderInterop.dll: Located at MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\native
Upewnij się, że wszystkie trzy pliki zostały dodane do projektu instalacyjnego, aby uniknąć tego wyjątku.

