MS Sync/SQL Server Compact 代码在最新版本 SQL Compact 3.5 中失败

Posted

技术标签:

【中文标题】MS Sync/SQL Server Compact 代码在最新版本 SQL Compact 3.5 中失败【英文标题】:MS Sync/SQL Server Compact code fails in latest build, SQL Compact 3.5 【发布时间】:2015-12-21 23:48:52 【问题描述】:

这对我来说是最不寻常的。

这段代码一直有效(几年),就在最近我开始收到这个错误:

找不到方法: 无效 Microsoft.Synchronization.Data.SqlServerCe.SqlCeSyncProvider..ctor(System.String, System.Data.SqlServerCe.SqlCeConnection)'。

我认为可能导致它的主要变化之一是将目标框架更改为 .Net 4.6。但是改回4.5.2后,还是有这个问题。

我正在使用这一行调用一个类:

e.Result = SyncLogic.Synchronize(e.Argument.ToString());

但是,它没有进入这个类 (SyncLogic),我假设冲突的行是这样的:

orch = new SyncOrchestrator

  RemoteProvider = new SqlSyncProvider(scopeName, sqlServerConn),
  LocalProvider = new SqlCeSyncProvider(scopeName, sqlCeConn),
  Direction = SyncDirectionOrder.Download
;

我安装了相同的应用程序(在我的开发电脑上)并且运行良好。使用反汇编程序,它似乎使用相同版本的Microsoft.Synchronization.Data.SqlServerCe,即 3.1.0.0,运行时版本 v2.0.50727。

所以我不知道同一个程序集如何适用于一个构建而不是另一个。

提前致谢!

【问题讨论】:

您能否澄清一下:“出错”与“工作正常”?也许“其他”安装中缺少某些运行时组件? @ErikEJ 我不确定我知道如何回答你 Erik,除了说安装的应用程序,v. 4.46,同步没有任何错误。我昨天刚刚测试了这个。但是对于我当前的项目,它无法运行此代码。我不知道我做了什么,或者发生了什么改变来打破长期以来一直在工作的东西。 【参考方案1】:

这个答案实际上是一种解决方法而不是解决方案。我不知道为什么会出现这个问题,但我发现在我的 HD 崩溃之前代码可以工作。当我不得不重建项目时(因为我缺少最近的备份),错误开始发生。

解决方法是采用旧项目,一个有效的项目,保持引用完整并复制新代码,直到它是最新的。所以现在我又开始行动了,但我真的希望我知道为什么会发生这个错误,因为引用似乎是相同的。我需要放弃这种异常并继续生活。感谢您阅读和学习这个伟大的道德课程...保持您的项目备份!

【讨论】:

以上是关于MS Sync/SQL Server Compact 代码在最新版本 SQL Compact 3.5 中失败的主要内容,如果未能解决你的问题,请参考以下文章

如何在Linux上安装和使用MS SQL Server

ms sql server日期格式转换

需要用经典 ASP (VB) 替换 Server 2012 上的 MS 索引服务

[MS SQL Server]SQL Server如何开启远程访问

将 MS SQL Server 查询结果导出到 MS Access

UTF-8 字符在 MS-SQL-Server 上的 INSERT 语句中发生更改