Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint SPListItem.UpdateOverwriteVersion是否创建次要版本?_Sharepoint - Fatal编程技术网

Sharepoint SPListItem.UpdateOverwriteVersion是否创建次要版本?

Sharepoint SPListItem.UpdateOverwriteVersion是否创建次要版本?,sharepoint,Sharepoint,在启用次要版本的文档库中,UpdateOverwriteVersion()会创建次要版本 线程——解释了类似的问题,并提出了解决方案,如关闭次要版本控制、更新项目和启用次要版本控制 但是,我无法暂时关闭次要版本控制设置,因为其他用户可能正在使用同一个库上载/更改他们的文档,关闭该设置可能会影响他们的操作 还有其他解决办法吗 感谢和问候 Arjabh尝试listItem.SystemUpdate(false)而不是listItem.UpdateOverwriteVersion()使用类似的方法(它

在启用次要版本的文档库中,UpdateOverwriteVersion()会创建次要版本

线程——解释了类似的问题,并提出了解决方案,如关闭次要版本控制、更新项目和启用次要版本控制

但是,我无法暂时关闭次要版本控制设置,因为其他用户可能正在使用同一个库上载/更改他们的文档,关闭该设置可能会影响他们的操作

还有其他解决办法吗

感谢和问候

Arjabh

尝试listItem.SystemUpdate(false)而不是listItem.UpdateOverwriteVersion()

使用类似的方法(它对我有效):


CheckinType.OverwriteCheckIn不适合我。它创建了新的次要版本。至少在SharePoint 2010中是这样。这是可行的,但对我来说有一点缺点。它附加了在版本历史记录中对上一个现有版本所做的更改,这可能会让人非常困惑。。
If the goal is to update the fields without creating multiple versions see the code:

Microsoft.SharePoint.Client.File lp_newFile = lp_web.GetFileByServerRelativeUrl(lp_uri.LocalPath);
lp_context.Load(lp_newFile);
lp_context.ExecuteQuery();

//check out to make sure not to create multiple versions
lp_newFile.CheckOut();

ListItem lp_item = lp_newFile.ListItemAllFields;
listItem["Created"] = info.SourceFile.CreationTime;
listItem["Modified"] = info.SourceFile.LastWriteTime;
listItem.Update();

// use OverwriteCheckIn type to make sure not to create multiple versions 
lp_newFile.CheckIn(string.Empty, CheckinType.OverwriteCheckIn);
//Disable minor versions on your list or library, if your item is in a major version (maybe use a file.Publish before)
list.EnableMinorVersions = false;
list.Update();

//Update item and overwrite your major version
ListItem lp_item = lp_newFile.ListItemAllFields;
lp_item["Created"] = info.SourceFile.CreationTime;
lp_item["Modified"] = info.SourceFile.LastWriteTime;
lp_item.UpdateOverwriteVersion();

//Enable minor versions
list.EnableMinorVersions = true;
list.Update();