C# 如何在不更改修改的时间戳的情况下签入文件?

C# 如何在不更改修改的时间戳的情况下签入文件?,c#,sharepoint,checkin,modified-date,C#,Sharepoint,Checkin,Modified Date,我正在将SharePoint CSOM与C#桌面应用程序一起使用,并尝试将文件签入到启用了“需要签出”设置的文档库中。我希望修改后的时间戳保持不变(不更新) 签入后,我用原始时间戳更新列表项。当“Require check out”被禁用时,这种方法可以工作,但是当它被启用时,我得到一个异常,它说必须首先签出文件。我曾尝试在签入之前更新列表项,但在签入时它会被覆盖 有没有办法做到这一点 lstItem.Update() lstItem.SystemUpdate() 您可以使用“更新”来更新文件

我正在将SharePoint CSOM与C#桌面应用程序一起使用,并尝试将文件签入到启用了“需要签出”设置的文档库中。我希望修改后的时间戳保持不变(不更新)

签入后,我用原始时间戳更新列表项。当“Require check out”被禁用时,这种方法可以工作,但是当它被启用时,我得到一个异常,它说必须首先签出文件。我曾尝试在签入之前更新列表项,但在签入时它会被覆盖

有没有办法做到这一点

lstItem.Update()
lstItem.SystemUpdate()
您可以使用“更新”来更新文件和修改的日期。
系统更新将在不更改修改日期的情况下更新文件。

使用系统更新更新数据后,在重新检入
SPFile
时是否尝试覆盖切金

listItem.SystemUpdate();    
file.CheckIn("comment", CheckinType.OverwriteCheckIn);

编辑:在您澄清您没有使用草稿后,我建议您使用
SPFile.UndoCheckOut()
以编程方式放弃签出。否则,您修改内容而不将内容标记为已修改,这将与SharePoint的设计背道而驰。

请参见此-如果您更新到较新的csom,您应该能够执行此操作,这是导致更新修改的时间戳的签入操作。文件签入后,我无法更改修改的时间戳,因为它未签出。请记住,在文档库上启用了“需要签出”设置。我没有,但我的理解是,这只应在签入草稿时使用。如果您不使用草稿,则可能是a)尝试放弃签出,或者b)尝试更新文件内容。如果是,则使用
SPFile.UndoCheckOut()
。如果是b,那么您本质上是在反对SharePoint的设计,因为更新的内容构成了修改。我正在更新文件内容。如果启用了“需要签出”设置,是否有方法在签入文件后更新“修改人”和“修改人”字段?是否有办法避免签出文件?尝试将修改字段上的
ReadOnly
属性设置为false,然后在
SystemUpdate