当我从代码
发布文件时byte[] fileBytes = objItem.File.OpenBinary();
string DestinationURL = string.Format(@"{0}/{1}", objDestinationFolder.Url, objItem.File.Name);
//Copy the file.
SPFile objDestinationFile = objDestinationFolder.Files.Add(DestinationURL, fileBytes, true);
objDestinationFile.Update();
objDestinationFile.Publish(string.Format("File Copied from {0}", objItem.Url));
我收到一条错误消息,上面写着
You can only publish, unpublish documents in a minor version enabled list
我检查了列表的权限,并选中了“创建主要和次要(草稿)版本”。有什么想法吗?
修改
如果我通过调用CheckIn方法
来签入文件objDestinationFile.CheckIn(string.Format(@"File Copied from {0}/{1}", objItem.Web.Url, objItem.Url));
一切正常
答案 0 :(得分:3)
我认为必须首先检查文件,然后才能发布。
因此,在您的情况下,可能会在列表的设置中激活“需要结帐”。这意味着如果您上传文档,则会先签出。
答案 1 :(得分:0)
即使在库上启用了次要版本,我也收到此错误。原因是我在没有Type="GhostableInLibrary"
属性的模块中添加了草稿文件。一旦我纠正了这个,草稿文件就可以由我的功能接收器发布。