DLL не загружается.
От: Кондраций Россия  
Дата: 14.04.22 12:57
Оценка:
В общем, использую для запуска нейросети под винду ONNX из под .NET
Используется Microsoft.ML.OnnxRuntime.dll (управляемый код) + onnxruntime.dll (неуправляемый код).
Получаю исключение DllNotFoundException (unable to load 'onnxruntime').
Procmon показывает, что onnxruntime.dll вполне себе обнаруживается программой и даже считывается (встречается успешная операция Load Image). Вообще все замониторенные операции успешны, не находит только pdb (да и фиг с ними).
Подозреваю, что дело в какой-то зависимости в неуправляемом коде.
Как можно узнать, на чём спотыкается? Попыток загрузки неуправляемого кода (кроме самой onnxruntime.dll) procmon не показывает; в журналах винды на эту тему тоже пусто.
Сообщение заговорено потомственным колдуном, целителем и магом в девятом поколении!
Модерирование или минусование сообщения ведет к половому бессилию, венерическим заболеваниям, венцу безбрачия и диарее!
Re: DLL не загружается.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 14.04.22 13:32
Оценка: 2 (1) +1
Здравствуйте, Кондраций, Вы писали:

К>Как можно узнать, на чём спотыкается? Попыток загрузки неуправляемого кода (кроме самой onnxruntime.dll) procmon не показывает; в журналах винды на эту тему тоже пусто.


Для начала надо узнать, все ли зависимости этой dll есть на компе. Какой-нибудь dependency walker запусти для неё.
Re: DLL не загружается.
От: Maniacal Россия  
Дата: 14.04.22 13:34
Оценка: 2 (1) +1
Здравствуйте, Кондраций, Вы писали:

К>Как можно узнать, на чём спотыкается? Попыток загрузки неуправляемого кода (кроме самой onnxruntime.dll) procmon не показывает; в журналах винды на эту тему тоже пусто.


Замечал, что если DLL использует другую DLL и не находит её, то не загружается сама и ProcMon ничего подозрительного не показывает при этом. Можно попробовать Dependency Walker какой-нибудь.
Re: DLL не загружается.
От: alexander_r  
Дата: 14.04.22 13:42
Оценка: 2 (1) -1 :)
Здравствуйте, Кондраций, Вы писали:


К>Как можно узнать, на чём спотыкается? Попыток загрузки неуправляемого кода (кроме самой onnxruntime.dll) procmon не показывает; в журналах винды на эту тему тоже пусто.


Fuslogvw.exe не пробовали? там можно посмотреть лог привязки управляемых сборок при запуске приложения
https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer
для не управляемых dependency walker https://www.dependencywalker.com/
Отредактировано 14.04.2022 13:45 alexander_r . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.