使用Sqlite-WinRT时获取TypeLoadException

时间:2015-06-30 15:32:04

标签: c# sqlite windows-runtime windows-phone-8.1

我正在开发Windows Phone 8.1应用程序(WinRT),我想添加对SQLite的支持。我已将SQLite for Windows Phone扩展添加到项目中,并添加了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');");
        }

当执行第一行时,我收到此错误:

enter image description here

以下是我项目中的参考文献列表:

enter image description here

感谢任何帮助。谢谢大家。

1 个答案:

答案 0 :(得分:1)

所以我设法解决了这个问题。它似乎是由Visual Studio IDE未注册WinMD类型并在运行时导致TypeLoadException引起的。 下载Visual Studio Update 5 RC(候选发布者)将解决问题。将IDE更新为Update 5大约需要30分钟,具体取决于您的Internet速度。 RC版本非常稳定,它的工作正常,所以我不相信它会对您当前的项目造成任何问题。