2010-11-19 1 views
4

Вот ошибка мы получаем при запуске приложения на компьютере, который не работает:Ошибка при развертывании SQLite + Entity Framework C# applicationaton. [Воспроизводить ПОДТВЕРЖДЕНО.]

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

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

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

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

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

ответ

2

Пробовал использовать System.Data.SQLite.dll рядом с .exe?

+0

Да, после установки есть файл .exe и файлы .dll. Как я уже сказал, приложение работает только в том случае, если я устанавливаю драйверы ado.net и выбираю версию Visual Studio. – 2010-11-19 15:25:44

20

Редактировать 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> 
+0

Спасибо, ты спас меня! – jkottnauer

+0

Огромное спасибо –

3

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

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

BTW Я использую SQLite.NET в приложении Entity Framework.

+1

Я тоже ... Что это такое ??? –

Смежные вопросы