2

我必须制作一个程序来更改列表项的 UI 版本号(SharePoint 的 Web 界面上显示的版本号)。

例如:一个项目有这些版本:1.0、1.1、1.2、2.0、2.2、2.3 我想将2.2版本的标签更改为2.1。

据我所知,通过对象模型是不可能的,所以我必须直接修改数据库。在数据库中有两个相关的表:

  • AllDocs - 在此表中有描述文档当前版本的行。

  • AllDocVersions - 在此表中有描述文档其他(非当前)版本的行。

如果我不必更改当前版本,这并不难,只需更改右侧表格中的 UIversion 字段。(在示例中:2.2 到 2.1)问题是版本更改是否更改了当前版本。在示例中:2.2 到 2.4。在这种情况下,我应该将 2.2 版本的记录从 AllDocVersions 表移到 AllDocs,将 2.3 版本的记录从 AllDocs 移到 AllDocVersions,但这两个表的结构并不相同。

谁能描述我如何填写这些表格中缺少的字段?任何人都可以建议任何其他方式来更改版本吗?

4

2 回答 2

0

这可能会让您朝着正确的方向开始:

using (SPSite siteCollection = new SPSite("http://sp2010-server"))
{
    SPWeb site = siteCollection.OpenWeb()
    {
        site.UIVersion = 3;
        site.UIVersionConfigurationEnabled = true;
        site.Update();
    }
} 

来源:在 SP2010 中更改 UI 版本

于 2012-07-09T13:50:53.227 回答
0

一,不是那么简单的解决方案可能是:

  1. 让 SharePoint 做艰苦的工作,使用通用的 SharePoint API 恢复v2.2v2.4. 它为你做了两件事:
    • 复制v2.2到as和AllDocVersions_AllDocsv2.4
    • v2.3从移动AllDocsAllDocVersions
    • 可以通过 Web 界面实现,所以我想它也可用于 .NET 应用程序。
  2. 删除v2.2
  3. 然后,如果不是所需的版本号,您可以直接使用 SQL UPDATE 语句更新数据库中的v2.4tov2.5等的版本号。v3.0v2.4
于 2012-09-20T20:39:52.997 回答