我已经设置了一个内容类型中心,并通过创建测试内容类型并观察其发布到客户端站点来测试联合正常工作。
然后,我将实际感兴趣的内容类型(通过功能)以及它们所依赖的网站列部署到了中心。
我收到错误
Content type '...' cannot be published to this site because feature '...' is not enabled.
我想部署具有可升级功能的内容类型,以及在dev,qual和prod环境之间轻松移植的功能。但我不明白Hub的好处是什么。
如果我必须激活部署功能,则在发布之前,内容类型已经在网站上。如果我必须使用Web UI在Hub站点上手动创建内容类型(哎呀!),我遇到了尝试手动同步三个格局的问题。
是否有办法在仍使用Hub发布内容类型的同时有效管理到Hub的内容类型部署?
答案 0 :(得分:1)
使用内容类型中心的优势在于,它允许您在整个服务器场中的多个网站集和Web应用程序中使用和重用您的内容类型。
由于您的所有网站集现在都使用相同联合内容类型的实例,因此,如果将来需要在内容类型中添加/删除/重命名列,则可以像更新内容类型一样轻松完成,并重新订阅(然后允许sharepoint运行其计时器作业,并仔细检查更改,因为您是一个谨慎的SharePoint管理员)。
我不确定您收到的错误,您的帖子中没有足够的上下文。但是,我认为您可能会对如何发布联合内容类型感到困惑。首先,打开网站集上的内容联合中心发布功能,该功能包含您要在整个服务器场中重复使用的所有内容类型。接下来,您将配置混合元数据服务,以便SharePoint或多或少地将每种内容类型“加载到内存中”。
完成此步骤后,您可以选择要订阅联合中心的网站集。为此,您需要打开内容类型发布网站集功能。注意:如果您为站点使用空白模板,则可能会收到类似于您所描述的功能错误,因为空白模板存在“缺陷”。请参阅我的帖子:http://www.thesharepointblog.net/Lists/Posts/Post.aspx?ID=109
仅在您打开订阅功能并且内容类型集线器计时器作业已运行且订阅计时器作业已运行后,您的网站集才会看到可用的内容类型。
至于在中心站点上手动创建内容类型,执行此操作的唯一方法是使用UI。就个人而言,我编写了一个实用程序,它执行我刚才为我描述的所有内容,从创建初始内容类型到创建联合中心,将它们发布到所有网站集,以及最耗时,将它们与所有列表和订阅网站集上的库。我打算让我的雇佣公司出售它,但由于他们似乎没有兴趣,如果有足够的兴趣,我可以开源。
希望这有用。
答案 1 :(得分:1)
这确实是集线器的缺点。 我以前见过它。
如果已将内容类型部署到集线器,请检查内容类型元素的INHERITS标记是否设置为TRUE。否则它将无法在集线器中工作。
<ContentType ID="xxxxx"
Name="xxxx"
Group="xxxx"
Description="xxxx"
Inherits="TRUE"
Version="0">
</ContentType>
答案 2 :(得分:0)
别忘了您实际上可以在服务器场之间同步内容类型-当您在单独的服务器场上开发并且不想为管理内容类型而烦恼的PnP框架时,这特别有价值。在某些情况下,生产服务器场中可能已经存在“内容类型”,因此您需要在开发和/或测试中使用它们的副本。