在AWS EC2上使用SQLite

问题描述 投票:0回答:1

在Amazon Windows EC2实例上,我在VS2017 Express中创建了一个简单的Windows窗体应用程序,只需登录到C:\ Data \ Databases \ File.txt并使用Entity打开一个sqlite数据库C:\ Data \ Databases \ Database.db框架。

当我安装它时,这在我的本地机器和其他机器上工作得非常好。

一旦我将它安装到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,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一。该系统找不到指定的文件。文件名:'System.ValueTuple,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'---> System.IO.FileNotFoundException:无法加载文件或程序集'System.ValueTuple,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一。该系统找不到指定的文件。文件名:'System.ValueTuple,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'

我一般都读过,这意味着SQLite安装不正确。我已经尝试自己注册各种sqlite dll,但不断得到“模块已加载但未找到入口点DllRegisterServer”。错误。

我还读过,将sqlite dll复制到应用程序目录有时会起作用,但由于它是一个应用程序,Windows似乎将安装埋在我无法达到的地方。

我该怎么做才能让这个有效?

谢谢!

c# entity-framework sqlite amazon-ec2 dll
1个回答
0
投票

事实证明,这是由于:Could not load file or assembly 'System.ValueTuple'

AWS EC2安装了.Net framework 4.7.2,我在4.6.1中进行开发。一旦我在我的开发人员实例上安装了4.7.2,我就遇到了同样的问题,所以更新了项目中的所有Nuget包,现在一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.