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.
at Microsoft.ML.OnnxRuntime.NativeMethods..cctor()
--- Koniec śladu stosu wyjątku wewnętrznego ---
at Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
at Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
at IronBarCodeDetection.BarcodeDetect.PredictObject[TModel](Stream modelStream)
--- Koniec śladu stosu wyjątku wewnętrznego ---
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 - 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: at Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
at Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
at 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 bezproblemowo, musisz uwzględnić w projekcie instalacyjnym następujące trzy pliki: onnxruntime.dll, IronBarcodeInterop.dll i ReaderInterop.dll. Pliki te są generowane podczas kompilacji projektu w trybie Release:
onnxruntime.dll: Znajduje się w MsiInstallerSample\MsiInstallerSample\bin\ReleaseIronBarcodeInterop.dll: Znajduje się w MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\nativeReaderInterop.dll: Znajduje się w 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.

