我尝试了很多变化。
示例代码段:
byte [] exportedFile = set.Export();
DocumentSet.Import(exportedFile,DocSetNameToCreate,targetFolder,dsCt.Id,properties,web.CurrentUser);
收到错误:
DocID:未设置网站前缀。
答案 0 :(得分:1)
终于让它运行了。这与文档ID功能有关。确保在每个站点中激活它。让我们过夜(计时器工作需要运行)。然后,内容管理器将成功移动和解压缩您的文档集。
答案 1 :(得分:1)
您不必激活文档ID功能,只需确保在目标网站集的根网站的属性包中(将再次导入文档集)存在名为“docid_msft_hier_siteprefix”的属性,其中包含值“”(空字符串)。
使用此powershell-script:
$site = Get-SPSite http://host/sites/yoursite
$properties = $site.RootWeb.Properties
if ($properties["docid_msft_hier_siteprefix"] -eq $null)
{
$properties["docid_msft_hier_siteprefix"] = ""
$properties.Update()
}
请注意,我使用旧的属性包RootWeb.Properties而不是新的哈希表RootWeb.AllProperties,这是因为Microsoft.Office.DocumentManagement.Internal.OobProvider类仍然使用它。
那么为什么导入文档集时失败呢?函数DocumentSet.ImportProperties()在尝试设置文档集列表项的文档ID时捕获ArgumentException(因此,如果文档id列尚不存在则没有问题。)
但他们错过了通过函数OobProvider.GenerateDocumentId()调用的函数OobProvider.GetSitePrefix()如果属性包不包含prefix属性则抛出InvalidOperationException。