C# Невозможно загрузить ошибку DLL `e_sqlite3` на платформе без кодаC#

Место общения программистов C#
Ответить
Anonymous
 C# Невозможно загрузить ошибку DLL `e_sqlite3` на платформе без кода

Сообщение Anonymous »

Я просмотрел Интернет в надежде найти ответ на свой вопрос, но случай особенный, поэтому я обратился за помощью сюда.
Мы используем платформа без кода, где она похожа на дизайнер рабочих процессов Elsa — у вас есть различные узлы, представляющие определенные функции, и вы соединяете узлы вместе, чтобы заставить их выполнять определенные действия, что может быть так же просто, как взять файл и поместить его в другое место. Он также похож на Power Automate от Microsoft.
Платформа написана на C#, и каждый узел рабочего процесса представляет собой сборку класса, упакованную в NuGet. Этот процесс выглядит так: мы, разработчики, создаем класс C# с определенной функциональностью, собираем и упаковываем код в пакет NuGet, а затем загружаем пакет в частный репозиторий NuGet платформы без кода. Пользователи, которые позже захотят использовать нашу функциональность, просто вставляют узел, и платформа загружает NuGet, устанавливает зависимости, запускает Initialize() для класса, а затем остается открытой, слушая триггерные сигналы от других узлов.
Узел, который у меня сейчас есть, отвечает за получение информации из API и использование sqlite для кэширования результатов (назовем его №1). Я могу использовать один или два таких узла в одном рабочем процессе (процессе), и это работает хорошо. Проблема начала возникать, когда я загрузил другой узел (# 2), он работает так же, но вызывает другой API. Что платформа делает с зависимостями, так это то, что для каждого типа узла она устанавливает зависимости один раз, а затем повторно использует их для других узлов того же типа. Это то же самое, что загрузить класс с отражением один раз, а затем вызвать его много раз. Поскольку узел №2 был введен в рабочий процесс, зависимости внедряются дважды (у меня нет доступа к коду платформы, поэтому все, что я пишу о том, как работает платформа, основано на тщательных наблюдениях), во время «загрузки» Microsoft.Data.SQLite< /code> зависимость. Я вижу следующую ошибку:

Невозможно загрузить DLL «e_sqlite3» или одну из ее зависимостей: указанный модуль не найден. . (0x8007007E)

Метод Initialize(), о котором я упоминал ранее, запускается для каждого узла (подумайте об узле как об объекте, который НЕ static), я не заметил проблем, когда он вызывается дважды (это происходит, когда есть два узла №1).
Платформа и узлы работают в NET 6.

Код: Выделить всё

Microsoft.Data.SQLite
имеет версию 8.0.8
Я подозреваю, что проблема может заключаться в том, что во время загрузки пакета происходит взаимодействие с неуправляемым кодом (бинарные файлы SQLitePCL.raw?), который не может обработать этот случай. , но я не уверен.
Я пробовал следующее:
  • Укажите
  • Укажите
  • Вызовите SQLitePCL.Batteries.Init()
  • Вызов SQLitePCL.Batteries_V2.Init()
  • Проверено, совпадают ли версии зависимостей
  • Попробовал сослаться на последнюю версию пакета sqlite3< /li>
    Пытался упаковать «отсутствующую» .dll в NuGet
Я не только пробовал один за другим выше упомянутое, я пробовал различные комбинации вышеперечисленного (например, 1, 2 и 4 вместе).

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-platform
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»