【发布时间】:2019-04-27 09:19:39
【问题描述】:
在一个 Amazon Windows EC2 实例上,我在 VS2017 Express 中创建了一个简单的 Windows Forms 应用程序,它只记录到 C:\Data\Databases\File.txt 并打开一个 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