Synchronization XCOPY在无管理员权限的情况下部署Microsoft Sync Framework(即ClickOnce安装)

Synchronization XCOPY在无管理员权限的情况下部署Microsoft Sync Framework(即ClickOnce安装),synchronization,smartclient,microsoft-sync-framework,offline-mode,data-synchronization,Synchronization,Smartclient,Microsoft Sync Framework,Offline Mode,Data Synchronization,我目前正在设计一个智能客户端应用程序(WPF),它需要在“偶尔断开连接”模式下运行。对于离线场景,我考虑使用: 断开连接的Service Agent应用程序块(来自智能客户端软件工厂) Microsoft同步框架 我应该提到的是,我希望我的智能客户端应用程序是XCOPY可部署、自动更新和可安装的,而无需管理权限——基本上是一个ClickOnce部署的应用程序。据我所知,这意味着Microsoft Sync框架已经过时,因为它的实现中有一些COM,需要在需要管理员权限的客户端上注册。是否可以从

我目前正在设计一个智能客户端应用程序(WPF),它需要在“偶尔断开连接”模式下运行。对于离线场景,我考虑使用:

  • 断开连接的Service Agent应用程序块(来自智能客户端软件工厂)
  • Microsoft同步框架

我应该提到的是,我希望我的智能客户端应用程序是XCOPY可部署、自动更新和可安装的,而无需管理权限——基本上是一个ClickOnce部署的应用程序。据我所知,这意味着Microsoft Sync框架已经过时,因为它的实现中有一些COM,需要在需要管理员权限的客户端上注册。是否可以从ClickOnce应用程序XCOPY部署和运行MSF?还有其他关于数据同步的想法吗?

据我所知,MSF需要一个管理员安装——这让我很恼火,因为早期版本的Sync for ADO.NET没有

为什么要使用同步框架?您是否考虑过一个具体的用例,它在哪里可以很好地工作

DSA将叠加服务调用,一旦连接可用,它将开始将这些调用发送到相关服务。这不是你能真正同步的东西

我们在我的前两个智能客户端应用程序中所做的是一个简单的手动实现,用于“同步”参考数据等内容。任何获取的同步都不会通过DSA进行(仅在连接模式下进行逻辑同步)

客户端对于每个需要同步的“数据块”,我们存储上次同步的日期时间。为了同步,我们发送“类型”与上次更新的时间,然后服务器发回新项目和更新项目的增量。不处理删除的项目,但这通常会使它变得棘手

在我当前的应用程序中,我们在启动应用程序时同步这些数据,因为这已经足够了,但在我以前的系统中,我们有一个后台线程运行,它会每隔一分钟左右检查每个“片段”是否需要更新(例如,不重要的项目每24小时更新一次,重要的项目每1小时更新一次),并在需要时异步启动同步

这是客户端和服务器端的一点额外工作,但老实说,我相信这比尝试使用一些外部框架来完成这项工作要少,特别是如果无法在clickonce部署包中部署该框架


让你的应用“偶尔连接”大大增加了系统的复杂性…祝你好运

您好,可能有点晚了,但您可以使用bootstrapper软件包。“…可与Visual Studio安装和部署项目以及ClickOnce应用程序一起使用的同步框架2.0引导程序包示例,以重新分发同步框架2.0组件…”()