x86 и x64 System.Data.SQLite проблема - PullRequest
0 голосов
/ 23 января 2012

Я нашел много вопросов по этой проблеме, но не нашел ответов. У меня довольно странная проблема. Когда я добавляю 32-битную ссылку для System.Data.SQLite в мой проект, он работает только на платформе x86, и это должно быть хорошо для меня, так как мое приложение будет работать только на 32-битной Windows. Но когда я пытаюсь запустить приложение на 32-битной Windows, оно выдает исключение Could not load file or assembly 'System.Data.SQLite'. Затем я скачал 64-битную версию System.Data.SQLite dll. Тогда я мог бы начать отладку с ЛЮБОЙ целевой платформой ЦП, но не смог запустить приложение на моей 32-битной XP с такой же ошибкой Could not load file or assembly 'System.Data.SQLite'.

Я немного схожу с ума. Я не знаю, имеет ли это какое-либо значение, я не вижу ничего, но целевой платформой для моего приложения является .NET 4.0, и я попробовал каждую комбинацию System.Data.SQLite (.NET 2.0, .NET 3.5, .NET 4.0) 32-битная и 64-битная версия, ничего не помогает. Вот как выглядит мой конфигурационный файл:

<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>

  <connectionStrings>
    <add name="VetStationConnection" connectionString="Data Source=VeterinaryStation.s3db" providerName="System.Data.SQLite.SQLiteFactory"/>
  </connectionStrings>

1 Ответ

2 голосов
/ 23 января 2012

Я нашел решение. На самом деле я обнаружил, где допустил ошибку :) Я скачал двоичные файлы, которые не являются статически связанными, и для этого требовалось время выполнения Visual C ++. Поэтому решение для этого - установить Visual C ++ Runtime или загрузить system.data.sqlite статически связанные двоичные файлы: D

...