DLLs Ausentes na Criação do Instalador MSI
Ao criar um instalador MSI, você pode encontrar a seguinte exceção:
2025-01-27 16:57:23 - Erro: IronBarCodeDetection.Exceptions.IronBarcodeDetectionException: Erro inesperado ocorreu durante a execução da biblioteca de Machine Learning do IronBarcode. Por favor, forneça detalhes para support@ironsoftware.com para uma resolução. ---> System.TypeInitializationException: O inicializador do tipo 'Microsoft.ML.OnnxRuntime.NativeMethods' gerou uma exceção. ---> System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.
em Microsoft.ML.OnnxRuntime.NativeMethods..cctor()
--- Fim do rastreamento da pilha de exceção interna ---
em Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
em Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
em IronBarCodeDetection.BarcodeDetect.Predict[TModel](Stream modelStream)
--- Fim do rastreamento da pilha de exceção interna ---
em IronBarCodeDetection.BarcodeDetect.Predict[TModel](Stream modelStream)
em IronBarCodeDetection.BarcodeDetect.DetectBarCode()
em Iron.BarCode.Extensions.cuewjf.ehxbbs(BarcodeDetect tlxjvd)
em Iron.BarCode.Extensions.cuewjf.ehxbbr(AnyBitmap tlxjvd, Double tlxjve)
em Iron.BarCode.Extensions.cuewjo.mvanli(AnyBitmap tlxjvd, Double tlxjve)
em Iron.BarCode.Extensions.cuewjo.mvanlf(Image`1 tlxjvd)
em Iron.BarCode.Extensions.cuewjo.mvankh(Object tlxjvd)
em IronBarCode.BarcodeReader.Read(AnyBitmap inputImage, BarcodeReaderOptions barcodeReaderOptions)
em WindowsFormsBarcode.Form1.btnBrowse_Click_1(Object sender, EventArgs e)
2025-01-27 16:57:23 - Mensagem de Erro: Erro inesperado ocorreu durante a execução da biblioteca de Machine Learning do IronBarcode. Por favor, forneça detalhes para support@ironsoftware.com para uma resolução.
2025-01-27 16:57:23 - Exceção Interna: O inicializador do tipo 'Microsoft.ML.OnnxRuntime.NativeMethods' gerou uma exceção.
2025-01-27 16:57:23 - Rastreamento de Pilha da Exceção Interna: em Microsoft.ML.OnnxRuntime.SessionOptions..ctor()
em Iron.BarCode.Extensions.xjtagg`1..ctor(Stream dfepdx, SessionOptions dfepdy)
em IronBarCodeDetection.BarcodeDetect.Predict[TModel](Stream modelStream)
Razão
Este erro ocorre porque a biblioteca não consegue encontrar os arquivos necessários para funcionar corretamente.
Solução
Para garantir que o instalador MSI funcione sem problemas, você deve incluir os seguintes três arquivos em seu projeto de instalação: onnxruntime.dll, IronBarcodeInterop.dll e ReaderInterop.dll. Esses arquivos são gerados quando você compila o projeto no modo Release:
onnxruntime.dll: Localizado em MsiInstallerSample\MsiInstallerSample\bin\ReleaseIronBarcodeInterop.dll: Localizado em MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\nativeReaderInterop.dll: Localizado em MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\native
Certifique-se de que todos os três arquivos sejam adicionados ao seu Projeto de Configuração para evitar esta exceção.

