BadImageFormatException с SQLite в веб-сайте бритвы ASP.NET - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь создать очень простой интернет-магазин в Razor с помощью SQLite.К сожалению, когда я пытаюсь создать базу данных (или создать объект SQLiteConnection), возникает странное исключение System.BadImageFormatException.

Была предпринята попытка загрузить программу с неверным форматом.(Исключение из HRESULT: 0x8007000B) "} System.BadImageFormatException

Мой код выглядит примерно так:

public bool CreateDatabase()
{
try
{
  string db = HttpContext.Current.Server.MapPath("~/App_Data/mydb.sqlite");
  SQLiteConnection.CreateFile(db);
  SQLiteConnection m_dbConnection = new SQLiteConnection(@"Data Source="+ db + ";Version=3;");
  m_dbConnection.Open();

  string sql = "create TABLE cart (UserHash varchar(35), imageid varchar(255), rider varchar(255), competition varchar(255), usagetype varchar(255), retouch varchar(10), blacknwhite varchar(10))";
  SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
  command.ExecuteNonQuery();
  return true;
}
catch (Exception)
{
  return false;
}
}

Этот веб-сайт, вероятно, будет работать на стороннем хостинге, поэтомуважно использовать относительный путь для местоположения файла sqlite, хотя я пока не могу заставить его работать.

В переменной db я получаю правильное местоположение папки App_Data. Я получаю исключение при новом SQLiteConnection.Я также попытался использовать следующую строку подключения, не повезло:

"Data Source=|DataDirectory|mydb.sqlite; Version=3;"

Что мне не хватает?

1 Ответ

0 голосов
/ 14 октября 2018

BadImageFormatException происходит, когда ваше приложение и ваши библиотеки используют разную битность.Например, приложение построено для AnyCPU (без 32-битной версии) или x64, а ваши библиотеки скомпилированы для 32-битной или наоборот.

Обычно решение очень простое.Просто скопируйте соответствующую версию SQLite для разрядности вашего приложения в папку запуска или измените целевую платформу вашего приложения в соответствии с используемой версией библиотеки

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