Sqlite在64位机器上的MvvmCross失败

时间:2013-11-25 21:27:09

标签: wpf sqlite 64-bit mvvmcross

我正在开发MvvmCross应用程序套件的WPF组件。我非常喜欢MvvmCross,可以看到它使跨平台开发变得更加容易。

我看到的问题是,当我使用SQLite插件并将WPF代码作为“任何CPU”运行时,它无法使用BadImageFormatException加载本机sqlite3.dll。如果我选择x86或首选32位,那么它在32位模式下工作正常。但是,在WPF项目中,我使用的是一个COM组件,需要在64位机器上以64位模式加载,在32位机器上以32位模式加载。混合混淆了com组件。

因此,当使用SQLite时,是否可以在64位模式下运行MvvmCross。

我是否必须使用System.Data.Sqlite,这对MvvmCross有用吗?

1 个答案:

答案 0 :(得分:1)

对于提供32位,64位(和ARM)之间选择的Windows平台,您需要构建和使用SQLite3.dll本机dll和MvvmCross.Sqlite插件平台程序集的体系结构特定版本。

可悲的是,这并非由nuget或目前的MvvmCross构建树自动完成。我试图花时间在这上面,但我设法让自己陷入了nuget和Powershell脚本 - 所以我放弃了......(虽然我确实在http://nuget.codeplex.com/discussions/446656尝试建议一个更简单的nuget包装系统)

如果您确实希望为不同的体系结构包含不同的程序集,那么在https://github.com/MvvmCross/MvvmCross/issues/307中讨论如何在WinRT平台中执行此操作 - 我相信64位Wpf平台的情况类似。

此区域目前正在“更新”https://github.com/MvvmCross/MvvmCross-SQLite SQLite-net端口内进行调查。最近影响WPF的讨论包括https://github.com/MvvmCross/MvvmCross-SQLite/issues/8https://github.com/MvvmCross/MvvmCross-SQLite/pull/10 - 非常欢迎其他开发人员为这个SQLite-net repo做出贡献 - 如果我们可以帮助使用更容易为WPF和WinRT开发者。