我这里有2个问题,
场景: 我创建了一个具有我自己的列表定义的文档库,具有默认的文档库设置。使用我的定义创建了相当多的文档库。现在我想更改版本设置以将主要版本的数量限制为 5。
我遇到了架构文件的“MajorVersionLimit”列表元素属性,不幸的是,这仅适用于内容迁移架构。它对我不起作用。
问题 1: 是否有任何简单的机制可以在我的网站集中启用此类设置?
我知道我可以编写一段 .NET 代码来改变这一点。问题 2: 如果我这样做,它会破坏列表定义吗?
提前致谢。〜尤瓦
我这里有2个问题,
场景: 我创建了一个具有我自己的列表定义的文档库,具有默认的文档库设置。使用我的定义创建了相当多的文档库。现在我想更改版本设置以将主要版本的数量限制为 5。
我遇到了架构文件的“MajorVersionLimit”列表元素属性,不幸的是,这仅适用于内容迁移架构。它对我不起作用。
问题 1: 是否有任何简单的机制可以在我的网站集中启用此类设置?
我知道我可以编写一段 .NET 代码来改变这一点。问题 2: 如果我这样做,它会破坏列表定义吗?
提前致谢。〜尤瓦
我不知道如何通过配置文件设置这些值,但它们暴露在 SPList 对象上。所以诀窍是找到一种方法来捕获从模板创建新列表的时间,然后适当地设置字段(SPList.MajorVersionLimit和SPList.appropriately)。
我还没有尝试过,但这是我要开始的地方。
可能有更好的方法,但我没有看到。祝你好运。
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()
}
}
}
MajorVersionLimit参数确实适用于schema.xml。只要记住每次编辑此文档库中的文件时都要检查创建版本吗?选项。
这实际上不是真的,您可以通过 Scheme.xml 设置 MajorVersionLimit(作为 List 元素属性),它对我来说效果很好。智能感知不支持这些属性。
Doug “bobthebuilder” McCusker 博客 ( http://suguk.org/blogs/sharepointhack/archive/2008/01/14/7809.aspx )中描述了该解决方案