如何限制要在文档库列表定义上维护的主要版本的数量?

时间:2009-02-26 04:17:01

标签: sharepoint sharepoint-2007

我在这里有2个问题,

方案: 我创建了一个文档库,其中包含我自己的列表定义,具有默认的文档库设置。使用我的定义创建了大量文档库。现在我想更改版本设置以将主要版本的数量限制为5。

我遇到了Schema文件的“MajorVersionLimit”List元素属性,遗憾的是,这仅适用于Content Migration模式。它对我不起作用。

问题1: 是否有任何简单的机制可以在我的网站集中启用此类设置?

我知道我可以编写一段.NET代码来改变它。 问题2: 如果我这样做,是否会从列表定义中删除列表?

提前致谢。 〜YUVA

4 个答案:

答案 0 :(得分:0)

我不知道如何通过配置文件设置这些值,但是它们在SPList对象上公开。因此,诀窍是找到一种方法来捕获何时从模板创建新列表,然后适当地设置字段(SPList.MajorVersionLimitSPList.appropriately)。

我没有尝试过,但这是我开始的地方。

  1. ListTemplate element配置文件中,将“NewPage”属性设置为aspx页面,该页面应在用户单击UI中的“创建”按钮时显示。
  2. 在该页面后面的代码中,手动创建列表(使用OM)并设置属性。
  3. 可能有更好的方法,但我没有看到它。祝你好运。

答案 1 :(得分:0)

MajorVersionLimit 参数适用于 schema.xml 。只需记住每次编辑此文档库中的文件时创建一个版本吗?选项。

答案 2 :(得分:0)

在我看来,修改现有网址的最简单方法是编写一个设置spWeb.MajorVersionLimit的小型PowerShell脚本,如下所示:

#Set up connection

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$spSite = new-object Microsoft.SharePoint.SPSite($siteurl) 

for($i=0; $i -lt $spSite.AllWebs.Count;$i++)

{

    $spWeb = $spSite.AllWebs[$i]
    for($j=0; $j -lt $spWeb.Lists.Count;$j++)
    {
        $aList = $spWeb.Lists[$j]
        if( $aList.Title -ceq "dokumenter") # case sensitive
        {
            if( $aList.EnableVersioning -eq $false)
            {
                $aList.EnableVersioning = $true
                $aList.MajorVersionLimit = 5;
                $aList.Update()
            }
        }
    }

答案 3 :(得分:0)