如何使用CSOM(SharePoint)设置_CheckinComment

时间:2014-04-03 08:55:29

标签: c# sharepoint csom

我正在寻找一种设置_CheckinComment的方法。如果我这样尝试:

Microsoft.SharePoint.Client.File myUploadFile = myList.RootFolder.Files.Add(fileCreationInformation);
ListItem myItem = myUploadFile.ListItemAllFields;
myItem["Title"] = Path.GetFileName(sDocPath);
myItem["_CheckinComment"] = "This is the comment";
myClientContext.Load(myItem);
myClientContext.Load(myUploadFile);
myClientContext.ExecuteQuery();

我收到Microsoft.SharePoint.Client.ServerException:已使用无效数据更新列表项。您尝试更新的字段可能是只读的。

我想更改_CheckinComment(InternalName)而不是:

myUploadFile.CheckIn("This is the comment", CheckinType.OverwriteCheckIn)

谁可以提供帮助?

1 个答案:

答案 0 :(得分:0)

Per Microsoft," _CheckinComment"是一个只读服务器字段。所以,这解释了你的错误。

虽然你没有说明你想要做什么,但我想我知道因为我有自己的问题。我觉得你很恼火,你不能在上传时加入一个登记评论...当你使用checkin()方法时,它会创建一个新版本。因此,您的上传跨越了两个版本(第一个是上传本身没有签到注释,第二个是添加了签到注释) - 有点乱。

对我而言,关键是使用Publish(字符串)[https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.file.publish.aspx]和Unpublish(字符串)方法。这允许您设置当前文件的签到注释,同时将当前版本升级/降级为次要主要版本。假设您的文档库有主要版本和次要版本,您可以按如下方式应用它:

  1. 上传 - >发布(strComment)以创建带注释的主要版本
  2. 上传 - >发布("") - >取消发布(strComment)以创建带注释的次要版本。