Ошибка при развертывании приложения SQLite + Entity Framework C #. [Воспроизвести ПОДТВЕРЖДЕНО.] - PullRequest
4 голосов
/ 19 ноября 2010

Вот ошибка, которую мы получаем при запуске приложения на компьютере, который не работает:

System.ArgumentException: указанный поставщик хранилища не найден в конфигурации или недопустим.---> System.ArgumentException: не удалось найти запрошенный поставщик данных .Net Framework.Возможно, он не установлен.

Нам удалось сузить причину ошибки, и мы уверены, что это она.На моем компьютере разработчика установлена ​​Visual Studio 2010.Когда я установил ADO.Net SQLite провайдера (http://sourceforge.net/projects/sqlite-dotnet2/) в конце установки, он спрашивает меня, с какой Visual Studio его установить. Я выбрал Visual Studio 2010, и он работает. Установка созданного пакета установки позволяет мне использовать приложениеи все в порядке.

На моей коллеге мы сделали тот же процесс. Сначала установите приложение без установки поставщика данных (ссылка выше), и мы получили эту ошибку. Затем мы установили поставщик данных, выбрав VisualStudio 2010 в конце мастера установки и установленное приложение теперь работает.

Теперь на совершенно новой виртуальной машине Windows XP мы пытаемся установить приложение и запустить приложение, и мы получаем ту же ошибку.мы устанавливаем провайдера данных, но он не побуждает нас выбирать Visual Studio, потому что он не установлен, зачем клиенту это нужно, верно? Мы пытаемся запустить установленное приложение после его установки, и мы получаемЖЕ ошибка, как будто драйвер даже не востановился.

Есть предложения?Что именно мне нужно для клиентов?Кажется, что выбор Visual Studio решает эту проблему, так что, возможно, эта опция устанавливает то, что мы не видим?

Ответы [ 3 ]

20 голосов
/ 24 января 2011

Отредактируйте app.config вашего exe-файла, включив в него:

<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SQLite"/>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
    </DbProviderFactories>
</system.data>
3 голосов
/ 23 марта 2011

В системах Vanilla XP или Win7 для запуска мне понадобилась указанная выше модификация файла конфигурации, как описано в справке Sqlite.NET.

Теперь, когда я его добавил, программа больше не будет работать на моем устройстве разработки (VS2010), пока я не выну его обратно.

Кстати, я использую SQLite.NET в приложении Entity Framework.

2 голосов
/ 19 ноября 2010

Попробовал, чтобы System.Data.SQLite.dll сидел рядом с .exe?

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