2

我这里有2个问题,

场景: 我创建了一个具有我自己的列表定义的文档库,具有默认的文档库设置。使用我的定义创建了相当多的文档库。现在我想更改版本设置以将主要版本的数量限制为 5。

我遇到了架构文件的“MajorVersionLimit”列表元素属性,不幸的是,这仅适用于内容迁移架构。它对我不起作用。

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

我知道我可以编写一段 .NET 代码来改变这一点。问题 2: 如果我这样做,它会破坏列表定义吗?

提前致谢。〜尤瓦

4

4 回答 4

0

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

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

  1. ListTemplate 元素配置文件中,将“NewPage”属性设置为当用户单击 UI 中的“创建”按钮时应显示的 aspx 页面。
  2. 在该页面的代码中,手动创建列表(使用 OM)并设置属性。

可能有更好的方法,但我没有看到。祝你好运。

于 2009-02-26T07:39:09.670 回答
0

In my opinion the easiest way to modify existing webs is to write a small PowerShell script setting the spWeb.MajorVersionLimit, some thing like this:

#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()
            }
        }
    }
于 2009-02-26T19:00:36.707 回答
0

MajorVersionLimit参数确实适用于schema.xml只要记住每次编辑此文档库中的文件时都要检查创建版本吗?选项。

于 2009-02-26T10:46:39.890 回答
0

这实际上不是真的,您可以通过 Scheme.xml 设置 MajorVersionLimit(作为 List 元素属性),它对我来说效果很好。智能感知不支持这些属性。

Doug “bobthebuilder” McCusker 博客 ( http://suguk.org/blogs/sharepointhack/archive/2008/01/14/7809.aspx )中描述了该解决方案

于 2010-07-26T14:36:02.440 回答