我想为我的应用创建这个SQLite数据库,每次尝试都会收到此错误。
类型' System.DllNotFoundException'的例外情况发生在SQLite.Net.Platform.WinRT.dll但未在用户代码中处理
我已经安装了SQLite for uwp,我添加了SQLite,用于添加到引用的通用应用程序(windows)平台。
它不会发生在Windows桌面上,只是移动设备的一个问题。
private string _dbPath = string.Empty;
public string DbPath
{
get
{
if (string.IsNullOrEmpty(_dbPath))
{
_dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "Storage.sqlite");
}
return _dbPath;
}
}
public SQLiteConnection DbConnection => new SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DbPath);
答案 0 :(得分:2)
我安装了SQLite for uwp,我添加了SQLite,用于添加到引用的通用应用程序(windows)平台。 它不会发生在Windows桌面上,只是移动设备的一个问题。
根据您上面提供的代码,您正在使用SQLite的SQLite.Net-PCL NuGet包。
当我使用SQLite的SQLite.Net-PCL NuGet Package和仅添加“SQLite for Universal Windows Platform”时,我已经重现了这个问题。代码在本地计算机上运行正常但在Mobile Emulator和Windows Phone上失败。
根据我的研究,SDK“ SQLite for Universal Windows Platform ”依赖于SDK“ Visual C ++ 2015 Runtime for Universal Windows Platform Apps ”。
因此,在使用SQLite的SQLite.Net-PCL NuGet Package时,我们可能需要为通用Windows平台和“Visual C ++ 2015 Runtime for Universal Windows Platform Apps”添加两者“SQLite”。
如果只添加“ SQLite for Universal Windows Platform ”,我们会收到以下警告:
SDK“SQLite.UWP.2015,Version = 3.13.0”取决于以下SDK“Microsoft.VCLibs,version = 14.0”,这些SDK尚未添加到项目中或未找到。请确保将这些依赖项添加到项目中,否则可能会遇到运行时问题。您可以通过Reference Manager将依赖项添加到项目中。
添加两个引用后,警告消失,问题得到解决。