【问题标题】:SharePoint Document Library version restore not behaving as expectedSharePoint 文档库版本还原未按预期运行
【发布时间】:2010-01-21 22:15:25
【问题描述】:

我有一些代码试图使用 ootb 版本控制和 SharePoint API 将共享点文档及其元数据属性“回滚”到以前的版本。这是我的代码示例:

int versionCount = item.Versions.Count;
if (versionCount > 0)
{
 // this only restores properties
 item.Versions.Restore(1);
}

使用 1(当前版本之前的最新版本)调用 restore 的预期结果是恢复文件和元数据。相反,只有元数据被恢复,当前文件被复制到新的“恢复”版本。

版本页面清楚地显示多个版本,通过 UI 恢复即可恢复所需文件。

此外,我尝试使用item.File.Versions 却发现item.File.Versions.Count 是1。

谁能提供任何见解?

【问题讨论】:

  • 愚蠢的问题,但是该项目的版本历史记录页面中显示了多少版本的文档?首先看看 SharePoint 认为该文档的版本数是多少,如果不是您所期望的,那么至少您知道这不是您的代码错误。
  • 版本历史页面有3个版本。此外,当我使用版本历史记录页面恢复所需版本时,会恢复正确的文件。
  • 那里也没有帮助。如果我直接从 web/folder 对象中检索文件对象,SPFile.Versions 集合仍然只包含当前版本。版本页面清楚地显示了多个版本。
  • 因此,版本页面似乎为文件和项目版本的组合生成了一个版本条目。当 SPFile.Versions 为 1 时,这表示该文件除了当前版本之外还有一个版本。 SPListItem.Versions 包含文件的所有版本,包括当前版本(在索引 0 处)。

标签: sharepoint


【解决方案1】:

版本页面为文件和项目版本的每个相关组合生成一个版本条目。当SPFile.Versions为1时,表示该文件除了当前版本外还有一个版本。 SPListItem.Versions 包含文件的所有版本,包括当前版本(在索引 0 处)。

当调用SPFile.Versions.Restore(iIndex) 时,文件连同适用于该文件的关联SPListItem 版本一起恢复

【讨论】:

    【解决方案2】:

    您的“SPListItem”将有一个 File 属性,键入 SPFile。这也有一个 .Versions 属性。您可能必须使用它或两者都使用。

    【讨论】:

    • 在这种情况下,item.File.Versions.Count 为 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2020-06-28
    相关资源
    最近更新 更多