使用 Sqlite-WinRT 时出现 TypeLoadException
Getting TypeLoadException when using Sqlite-WinRT
我正在开发 Windows Phone 8.1 应用程序 (WinRT),我想添加对 SQLite 的支持。我已经为项目添加了 Windows Phone 扩展的 SQLite,并且还添加了 SQLite-WinRT 包装器。我还将构建配置更改为 x86,以便它可以在模拟器中 运行。
我的问题是:当我尝试打开与数据库文件的连接(创建或打开)时,出现 TypeLoadException。
我打开连接的代码是这样的:
using (var db = new SQLiteWinRT.Database(ApplicationData.Current.TemporaryFolder, "Database.db"))
{
await db.OpenAsync(SqliteOpenMode.OpenOrCreateReadWrite);
await db.ExecuteStatementAsync(@"create table if not exists MyTable ( ID integer not null primary key autoincrement, Name varchar(150) not null);");
await db.ExecuteStatementAsync(@"insert into MyTable (Name) values ('Rafael');");
}
执行第一行时出现此错误:
这是我项目中的参考列表:
感谢任何帮助。谢谢大家
所以我设法解决了这个问题。它似乎是由 Visual Studio IDE 未注册 WinMD 类型引起的,并在运行时导致 TypeLoadException。
下载 Visual Studio Update 5 RC(候选版本)将解决此问题。将 IDE 更新到 Update 5 大约需要 30 分钟,具体取决于您的网速。
RC 版本非常稳定并且可以正常工作,所以我认为它不会对您当前的项目造成任何问题。
我正在开发 Windows Phone 8.1 应用程序 (WinRT),我想添加对 SQLite 的支持。我已经为项目添加了 Windows Phone 扩展的 SQLite,并且还添加了 SQLite-WinRT 包装器。我还将构建配置更改为 x86,以便它可以在模拟器中 运行。 我的问题是:当我尝试打开与数据库文件的连接(创建或打开)时,出现 TypeLoadException。 我打开连接的代码是这样的:
using (var db = new SQLiteWinRT.Database(ApplicationData.Current.TemporaryFolder, "Database.db"))
{
await db.OpenAsync(SqliteOpenMode.OpenOrCreateReadWrite);
await db.ExecuteStatementAsync(@"create table if not exists MyTable ( ID integer not null primary key autoincrement, Name varchar(150) not null);");
await db.ExecuteStatementAsync(@"insert into MyTable (Name) values ('Rafael');");
}
执行第一行时出现此错误:
这是我项目中的参考列表:
感谢任何帮助。谢谢大家
所以我设法解决了这个问题。它似乎是由 Visual Studio IDE 未注册 WinMD 类型引起的,并在运行时导致 TypeLoadException。 下载 Visual Studio Update 5 RC(候选版本)将解决此问题。将 IDE 更新到 Update 5 大约需要 30 分钟,具体取决于您的网速。 RC 版本非常稳定并且可以正常工作,所以我认为它不会对您当前的项目造成任何问题。