SQL Server Compact 4.0 + Sync Framework 2.1 +实体框架6.1.3 =如何?

时间:2016-03-09 17:33:45

标签: entity-framework-6 sql-server-ce microsoft-sync-framework

好的,经过一周的挫折后,我认为现在是时候联系万维网上的专家,以及StackOverflow。

我一直在做的是将应用程序迁移到EF 6.1.3,SQL Server Compact 4.0 SP1和Sync Framework 2.1。结果实际上并不是我引以为荣的事情,过去几天我似乎无法摆脱名人:

  

抛出异常:' System.MethodAccessException'在Microsoft.Synchronization.Data.SqlServerCe.dll

中      

其他信息:尝试按方法' Microsoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider..ctor()'访问方法' System.Data.SqlServerCe.NativeMethods.CreateErrorInstance(IntPtr ByRef)'失败。

SqlCeClientSyncProvider继承的提供程序的构造函数抛出此异常。

在使用SysInternals Process Explorer和融合日志深入研究此事后,似乎同步框架程序集Microsoft.Synchronization.Data.SqlServerCe无法使用System.Data.SqlServerCe中可用的代码。

我已经尝试了无数与互联网上的问题相关的方法,甚至可以从我的系统中删除所有相关的安装,只使用最低限度的安装,但到目前为止还没有成功。

目前最低限度涉及以下NuGet包:

  • EntityFramework.SqlServerCompact.PrivateDeployment v6.1.3
    由ErikJ创建:确保应用程序可以使用SQL Server CE 4.0.0.1的专用部署运行。
  • Microsoft.SyncFramework v2.1.0.2
    Darrel Tunnell - 安装和维护适用于x64和x86的Microsoft Sync Framework 2.1核心组件包。
  • Microsoft.SyncFramework.DatabaseProvider v3.1.0.0
    Darrel Tunnell - 为x64和x86安装和维护Microsoft Sync Framework 2.1数据库提供程序包。

然而问题仍然存在。 : - (

可能有趣的一些细节:

解决方案中的所有项目都针对x86架构,因为我们对一些淫乱的COM互操作程序集(尽管是整个其他子系统)有一些其他约束。

开发操作系统是Windows 7,64位。我甚至开始认为64位操作系统和32位SQL Compact 4.0甚至可能是干扰。

将上述内容置于具体问题中:如何摆脱MethodAccessException

欢迎所有输入,因为这个问题开始让我感到沮丧太久了 - 提前谢谢!

1 个答案:

答案 0 :(得分:0)

SQL CE中不支持Sync Framework 4.尝试将绑定重定向作为@ErikEJ提及,并查看如何进行此操作post