Подделка / Пакет "указанный модуль не найден" в файле сборки

Я создал следующее Github-репо для документирования проблемы: https://github.com/red-swan/fake-sqlite-problem

Я не могу построить sqlite базы данных из F# FAKE файл, полагающийся на Paket, Добавление пакета nuget System.Data.SQLite к paket.dependencies значит я могу open System.Data.SQLite но при попытке создать базу данных из build.fsx файл, я получаю следующую ошибку:

(Unable to load DLL 'SQLite.Interop.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E))

SQLite.Interop.dll находится в зависимости runtimes\win-x64\native\netstandard2.0 из System.Data.SQLiteзависимость System.Data.SQLite.Core, Попытка сослаться на это напрямую и #r заявление в build.fsx не удается с ошибкой:

Error opening binary file ... bad cli header, rva

Я не уверен, как все должно разрешиться, но запуск создания базы данных из фактического fsproj работает просто отлично, поэтому я считаю, что это связано с FAKE или же Paket разрешающая способность.

Если вы знакомы с FAKEэто звучит разумно? Вы знаете, как это исправить?

Чтобы воспроизвести ошибку:git clone https://github.com/red-swan/fake-sqlite-problem.git

1 ответ

Решение

Приведенный выше комментарий TeaDrivenDev есть решение. Я помещаю ответ здесь, чтобы я мог закрыть вопрос.

Чтобы быть конкретным, я нашел родную DLL SQLite.Interop.dll и бросил его в корневую папку, где подделка build.fsx файл есть. Статья TeaDrivenDev У ссылок есть и альтернативные методы.

Другие вопросы по тегам