Использование SQLite на AWS EC2 - PullRequest
0 голосов
/ 27 апреля 2019

На экземпляре Amazon Windows EC2 я создал простое приложение Windows Forms в VS2017 Express, которое просто регистрируется в C: \ Data \ Databases \ File.txt и открывает базу данных sqlite C: \ Data \ Databases \ Database.БД с использованием Entity Framework.

Это прекрасно работает на моем локальном компьютере и других компьютерах, когда я его устанавливаю.

После того, как я установил его на EC2, он не выглядитsqlite работает нормально.Текстовый журнал записывается, и при выполнении FileExists база данных обнаруживается.

Однако, как только он достигает «использования»

public class databaseDB : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite(@"Filename=C:\Data\Databases\Database.db");
    }
}

try
{
    using (databaseDB db = new databaseDB())
    {
       StaticFunctions.WriteToLog("Selecting...");
    }
}
catch (Exception ex)
{
    StaticFunctions.WriteToLog("Error!");
    StaticFunctions.WriteToLog(ex.InnerException.ToString());
}

, записывается следующий журнал ошибок:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.ValueTuple, версия = 4.0.2.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51' или одна из ее зависимостей.Система не может найти указанный файл.Имя файла: 'System.ValueTuple, версия = 4.0.2.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51' ---> System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.ValueTuple, версия = 4.0.0.0, культура= нейтральный, PublicKeyToken = cc7b13ffcd2ddd51 'или одна из его зависимостей.Система не может найти указанный файл.Имя файла: 'System.ValueTuple, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51'

, которую я обычно читал, это означает, что SQLite установлен неправильно.Я попытался зарегистрировать различные DLL-библиотеки sqlite самостоятельно, но продолжаю получать сообщение «Модуль загружен, но точка входа DllRegisterServer не найдена».ошибка.

Я также читал, что копирование библиотеки DLL sqlite в каталог приложения иногда работает, но, поскольку это приложение, Windows, кажется, скрывает установку где-то, к чему я не могу добраться.

Что я могу сделать, чтобы заставить это работать?

Спасибо!

1 Ответ

0 голосов
/ 28 апреля 2019

Оказывается, это было так: Не удалось загрузить файл или сборку 'System.ValueTuple'

В AWS EC2 установлена ​​платформа .Net Framework 4.7.2, и я разрабатывал в4.6.1.После того, как я установил 4.7.2 на своем экземпляре разработчика, у меня возникла та же проблема, поэтому обновил все пакеты Nuget в проекте, и теперь все это работает.

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