无法在SharePoint中发布文件

时间:2010-05-25 17:18:24

标签: c# sharepoint-2007

当我从代码

发布文件时
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));

一切正常

2 个答案:

答案 0 :(得分:3)

我认为必须首先检查文件,然后才能发布。

因此,在您的情况下,可能会在列表的设置中激活“需要结帐”。这意味着如果您上传文档,则会先签出。

答案 1 :(得分:0)

即使在库上启用了次要版本,我也收到此错误。原因是我在没有Type="GhostableInLibrary"属性的模块中添加了草稿文件。一旦我纠正了这个,草稿文件就可以由我的功能接收器发布。