1

我正在寻找一种设置_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: Invalid data has been used to update the list item。您尝试更新的字段可能是只读的。

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

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

谁能帮忙?

4

1 回答 1

0

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

尽管您没有具体说明您要做什么,但我想我知道,因为我有与此相关的问题。我认为您很生气,因为您无法在上传时添加签入评论……当您使用 checkin() 方法时,它会创建一个新版本。因此,您的上传跨越了两个版本(第一个是没有签入评论的上传本身,第二个是添加了签入评论)——有点混乱。

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

  1. Upload -> Publish(strComment) 以创建带有注释的主要版本
  2. Upload -> Publish("") -> Unpublish(strComment) 以创建带有评论的次要版本。
于 2015-04-24T05:16:51.310 回答