C# 在AWSEC2上使用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似乎将安装埋在了我无法到达的地方 我该怎么做才能让它工作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看起来就不能正常工作了。文本日志被写入,当文件存在时,会找到数据库 但是,一旦它遇到“
谢谢 结果证明这是因为:
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());
}