XCOPY在无管理员权限方案中部署Microsoft Sync Framework(即ClickOnce安装)

时间:2009-09-03 17:09:01

标签: synchronization smartclient microsoft-sync-framework offline-mode data-synchronization

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

  • 已断开连接的服务代理应用程序块(来自智能客户端软件工厂)
  • Microsoft Sync Framework

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

3 个答案:

答案 0 :(得分:1)

从我可以看出,MSF需要一个管理员安装 - 这会让我感到厌烦,因为早期版本的Sync for ADO.NET没有。

答案 1 :(得分:1)

为什么要使用Sync Framework?是否有一个特定的用例,你会想到它会运作良好吗?

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

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

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

在我当前的应用程序中,我们在应用程序启动时同步这些数据,因为这已经足够了,但在我之前的系统中,我们运行了一个后台线程,如果每个'件'需要更新,每隔一分钟左右检查一次(例如每24个)不重要项目的小时数,重要项目的小时数,以及必要时异步启动同步。

这是客户端和服务器端的一些额外工作,但老实说,我认为这比尝试使用外部框架更少,特别是如果该框架无法部署在您的clickonce部署包中。

让你的应用“偶尔连接”会极大地增加系统的复杂性......祝你好运!

答案 2 :(得分:1)

您可能有点太晚了,但您可以使用bootstrapper包。 “ ...可与Visual Studio安装和部署项目以及ClickOnce应用程序一起使用的Sync Framework 2.0引导程序包示例,以重新分发Sync Framework 2.0组件...... ”(http://www.microsoft.com/downloads/details.aspx?familyid=109DB36E-CDD0-4514-9FB5-B77D9CEA37F6&displaylang=en)< / p>