Не удалось загрузить сборку System.Data.SQLite.dll - PullRequest
5 голосов
/ 18 января 2012

У меня есть отлично работающее приложение Windows C Form .NET 4, которое использует файл базы данных SQLite3 для хранения данных и отображения форм.

При развертывании моего приложения на любом компьютере, кроме компьютера разработчика, я получаю исключение и появляется сообщение «Не удалось загрузить сборку System.Data.SQLite.dll или одну из ее зависимостей. Указанный модульневозможно найти."

Ссылка System.Data.SQLite.dll в проекте установлена ​​на Копировать локально = Истина.Также я попытался вручную загрузить сборку с помощью Assembly.LoadFile.DLL помещается в выходной каталог.Я также попытался установить целевую платформу на любой процессор, а также x86, без разницы.Все машины, с которыми я работаю, 32-битные.В чем здесь проблема?Почему мое приложение пытается загрузить сборку и не может ее найти?

Спасибо!

Ответы [ 4 ]

13 голосов
/ 29 ноября 2012

У меня была такая же проблема после публикации моей программы на отдельном компьютере.Установка распространяемого пакета Microsoft Visual C ++ 2010 ( x86 ) на отдельном компьютере устранила проблему.

Примечание. На отдельном компьютере уже был распространяемый пакет Microsoft Visual C ++ 2010 ( x64 * 1006).*) установлена ​​версия x86 .

7 голосов
/ 25 апреля 2013

«System.Data.SQLite.dll» требует «msvcr100.dll», что является одной из его зависимостей. Это будет доступно только в том случае, если вы установили последнюю версию «Microsoft Visual C ++ Redistributable» или любой другой продукт, который обеспечивает это внутри.

Например, VS2010 установит C ++ Redistributable по умолчанию. Вот почему ваше приложение не работает на некоторых машинах, но работает на других.

Вы можете попробовать вставить "msvcr100.dll" в папку bin вашего приложения и распространять, если вы не хотите устанавливать VC ++ 2010 Redist на всех ПК.

2 голосов
/ 27 июня 2013

Некоторые модули System.Data.Sqlite.dll зависят от «Microsoft Visual C ++ 2012 Вторично распространяемого пакета» .

Вы можете найти необходимые зависимости на официальной странице загрузки: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

0 голосов
/ 28 марта 2018

Ответы, которые уже даны, не решили мою проблему. Я пытался развернуть на сервере VMware. Решение, которое помогло, где дано здесь: http://sqlite.1065341.n5.nabble.com/System-Data-SQLite-Deployment-Mystery-td71752.html Здесь описаны два метода.

  1. Когда я устанавливаю этот sqlite-netFx45-setup-bundle-x86-2012-1.0.88.0.exe, мое приложение может найти правильную DLL.
  2. Второй способ - добавить dll в файл de app.exe.config в каталог отладки или выпуска. Если вы отредактируете этот файл напрямую, VC перезапишет файл.

Моя основная проблема заключалась в том, что я установил пакет sqlite вручную. Я не использовал NuGet, потому что я за прокси. Если вы используете Nuget, информация в app.exe.config будет предоставлена ​​автоматически.

Использование NuGet за прокси описано здесь: NuGet за прокси

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...