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 zapewnić płynne działanie instalatora MSI, należy dołączyć do projektu instalacyjnego następujące trzy pliki: onnxruntime.dll, IronBarcodeInterop.dll oraz 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.

