Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在AWSEC2上使用SQLite_C#_Entity Framework_Sqlite_Amazon Ec2_Dll - Fatal编程技术网

C# 在AWSEC2上使用SQLite

C# 在AWSEC2上使用SQLite,c#,entity-framework,sqlite,amazon-ec2,dll,C#,Entity Framework,Sqlite,Amazon Ec2,Dll,在Amazon Windows EC2实例上,我在VS2017 Express中创建了一个简单的Windows窗体应用程序,它只需登录到C:\Data\Databases\File.txt,并使用Entity framework打开一个sqlite数据库C:\Data\Databases\database.db 当我安装它时,它在我的本地机器和其他机器上运行得非常好 但是,一旦我将它安装到EC2上,sqlite看起来就不能正常工作了。文本日志被写入,当文件存在时,会找到数据库 但是,一旦它遇到“

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

当我安装它时,它在我的本地机器和其他机器上运行得非常好

但是,一旦我将它安装到EC2上,sqlite看起来就不能正常工作了。文本日志被写入,当文件存在时,会找到数据库

但是,一旦它遇到“使用”

将写入以下错误日志:

System.IO.FileNotFoundException:无法加载文件或程序集“System.ValueTuple,版本=4.0.2.0,区域性=中性,PublicKeyToken=CC7B13FFCD2DD51”或其依赖项之一。系统找不到指定的文件。 文件名:“System.ValueTuple,Version=4.0.2.0,Culture=neutral,PublicKeyToken=CC7B13FFCD2DD51”-->System.IO.FileNotFoundException:无法加载文件或程序集“System.ValueTuple,Version=4.0.0.0,Culture=neutral,PublicKeyToken=CC7B13FFCD2DD51”或其依赖项之一。系统找不到指定的文件。 文件名:“System.ValueTuple,版本=4.0.0.0,区域性=neutral,PublicKeyToken=CC7B13FFCD2DD51”

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

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

我该怎么做才能让它工作


谢谢

结果证明这是因为:


AWSEC2安装了.NETFramework 4.7.2,我是在4.6.1中开发的。一旦我在我的开发者实例上安装了4.7.2,我就遇到了同样的问题,所以更新了项目中的所有Nuget软件包,现在一切都正常了。

结果是:

AWSEC2安装了.NETFramework 4.7.2,我是在4.6.1中开发的。一旦我在我的开发者实例上安装了4.7.2,我就遇到了同样的问题,所以更新了项目中的所有Nuget软件包,现在一切都正常了

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());
}