我一直在尝试使用Microsoft Sync框架构建一种更新机制,该框架将检查一个文件夹(A)中的更改并在另一个文件夹(B)上更新相同内容。我有一个问题,我的同步总是覆盖另一个文件夹(B)上的文件。当我将ConflictResolutionPolicy设置为source wins或merge时会发生这种情况。我希望用户能够说是覆盖或不跳过。当我们复制文件时以及同名文件之间存在冲突时,可能就像Windows对话框一样。如果有人可以帮助我,或者会在文件之间发生冲突时给我一些关于如何获得此对话框功能的文档,我将非常感激。
这就是我现在所做的,但我无法做任何事情。有些文件具有相同的名称,但不同的时间戳必须触发冲突,但在我的情况下并不幸。
private void OnItemConflicting(object sender, ItemConflictingEventArgs args)
{
args.SetResolutionAction(ConflictResolutionAction.SaveConflict);
Console.WriteLine(" Conflict detected for item " + args.DestinationChange.ItemId.ToString());
}
private void OnItemConstraint(object sender, ItemConstraintEventArgs args)
{
args.SetResolutionAction(ConstraintConflictResolutionAction.RenameDestination);
ConstraintConflictResolutionAction.RenameDestination.ToString();
Console.WriteLine(" Constraint conflict detected" + args.DestinationChange.ItemId.ToString());
}
答案 0 :(得分:0)
如果您将冲突解决方案设置为source wins,那么它当然会覆盖目标。
显示对话框已经超出了框架的范围。
您可以在发生冲突时处理事件,也可以在同步之前预览更改。您可以显示或提示用户提供解决冲突的选项
这两种方案都包含在随SDK一起安装的文档中