我正在将 SharePoint CSOM 与 C# 桌面应用程序一起使用,并尝试将文件签入到启用了“需要签出”设置的文档库中。我希望修改后的时间戳保持不变(未更新)。
签入后,我使用原始时间戳更新列表项。这在“需要签出”被禁用时有效,但是当它被启用时,我得到一个异常,说必须先签出文件。我曾尝试在签入前更新列表项,但在签入时它会被覆盖。
有没有办法做到这一点?
我正在将 SharePoint CSOM 与 C# 桌面应用程序一起使用,并尝试将文件签入到启用了“需要签出”设置的文档库中。我希望修改后的时间戳保持不变(未更新)。
签入后,我使用原始时间戳更新列表项。这在“需要签出”被禁用时有效,但是当它被启用时,我得到一个异常,说必须先签出文件。我曾尝试在签入前更新列表项,但在签入时它会被覆盖。
有没有办法做到这一点?
lstItem.Update()
lstItem.SystemUpdate()
您可以使用 update 来更新文件和修改日期。系统更新将更新文件而不更改修改日期。
使用 SystemUpdate 更新数据后,您是否在SPFile
重新签入时尝试过 OverwriteCheckin?
listItem.SystemUpdate();
file.CheckIn("comment", CheckinType.OverwriteCheckIn);
编辑:在您澄清您不使用草稿后,我建议您使用SPFile.UndoCheckOut()
以编程方式丢弃结帐。否则,通过修改内容而不将内容标记为已修改,您本质上违背了 SharePoint 的设计。