C#SQLite Win 8.1 System.BadImageFormatException

时间:2014-07-03 17:10:29

标签: c# sqlite windows-runtime visual-studio-2013

我正在尝试使用Visual Studio 2013上的WinRT 8.1上的SQLite进行编程。我安装了带有WinRT 8.1 VSIX的SQLite和用于Windows Phone 8.1的SQLite,并且还从nuget加载了sqlite-net

我用来得到以下错误:

An exception of type 'System.BadImageFormatException' occurred in TimeTableAPP.Windows.exe but was not handled in user code

enter image description here

来自这两行代码:

SQLiteAsyncConnection cneu = new SQLiteAsyncConnection("newDB.db");
await cneu.CreateTableAsync<TestTable>();

相同
var conn = new SQLiteAsyncConnection(System.IO.Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, "newDB.db"));
await cneu.CreateTableAsync<TestTable>();

使用TestTable

[Table("TestTable")]
public class TestTable
{
    [PrimaryKey, AutoIncrement]
    public long Id { get; set; }
    public string nomnomnom { get; set; }
}

这个问题似乎经常发生,通常可以通过将平台目标设置为x86来解决。正如你所看到的那样:

enter image description here

我不知道该怎么办了。我对VC2013安装进行了修复,卸载并重新安装了VSIX,并为共享Windows 8.1和Windows Phone 8.1制作了一个项目,Windows Phone没有触发错误,但是Windows Store App使用相同的代码触发了错误。

1 个答案:

答案 0 :(得分:1)

根据MSDN,由于库或程序的格式错误(通常不匹配)而发生此错误 - 如果您的目标是x86,则可能会发生此错误,但如果您的目标是explcitly x64,也会发生此错误或者在你自己的代码之外存在不匹配。如果你的程序不是x86,那么简单地设置为x86就不会修复它。确保您尝试使用x64和任何CPU,并检查任何有关SQLite在其下运行的文档。

另外请不要忘记您可以尝试直接安装库而不是NuGet,因为库本身可能存在一些冲突。在你的控制之外。