代码之家  ›  专栏  ›  技术社区  ›  David Culp

如何有效地将内容类型部署到内容类型中心

  •  5
  • David Culp  · 技术社区  · 14 年前

    我已经建立了一个内容类型集线器,并通过创建一个测试内容类型并观察它被发布到客户端站点来测试联合是否正常工作。

    然后,我部署了我实际上对发布到中心感兴趣的内容类型(通过特性),以及它们所依赖的站点列。

    我得到错误

    Content type '...' cannot be published to this site because feature '...' is not enabled.

    我想部署具有可升级性和易于在开发、质量和生产环境之间移植功能的内容类型。但我不明白这个枢纽的好处是什么。

    如果必须激活部署功能,则在发布之前,内容类型将已经存在于网站上。如果我必须使用Web UI在中心网站上手动创建内容类型(糟糕!),我有一个问题,就是要手动保持三个景观的同步。

    在仍然使用中心发布内容类型的同时,是否有方法有效地管理到中心的内容类型部署?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Robert Christ    12 年前

    使用内容类型中心的优势在于,它允许您在整个服务器场中的多个网站集和Web应用程序上使用和重用内容类型。

    因为您的所有网站集现在都在使用相同联合内容类型的实例,如果将来需要在内容类型中添加/删除/重命名列,则这与更新内容类型和重新订阅(然后允许SharePoint运行其计时器作业,并再次检查更新的更改是否为因为你是一个细心的SharePoint管理员)。

    我不确定你收到的是哪个错误,只是你的帖子没有足够的上下文。但是,我认为您可能对联合内容类型的发布方式有点困惑。首先,打开网站集上的内容联合中心发布功能,该功能包含将在整个服务器场中重用的所有内容类型。接下来配置混合元数据服务,以便SharePoint或多或少地将您的每种内容类型加载到内存中。

    完成此步骤后,您可以选择要订阅联合中心的网站集。为此,需要启用内容类型发布网站集功能。注意:如果您为您的站点使用空白模板,您可能会收到一个如您所描述的功能错误,因为空白模板存在“缺陷”。看我的帖子: http://www.thesharepointblog.net/Lists/Posts/Post.aspx?ID=109

    只有当您打开订阅功能,并且内容类型集线器计时器作业已运行,并且订阅计时器作业已运行之后,您的网站集才能看到可用的内容类型。

    至于在中心站点上手动创建内容类型,唯一的OOB方法是使用UI。就我个人而言,我编写了一个实用程序,它执行我刚才为我描述的所有操作,从创建初始内容类型,到创建联合中心,将它们发布到所有网站集,大多数时间都是将它们与订阅网站集上的所有列表和库关联起来。我本来打算让我的雇佣公司卖掉它,但由于他们似乎不感兴趣,如果有足够的兴趣,我可以打开它的源代码。

    希望这是有帮助的。

        2
  •  1
  •   Jourik Feenstra    12 年前

    这看起来确实是轮毂的缺点。 我以前亲眼目睹过。

    如果已将内容类型部署到集线器,请检查content-type元素的inherits标记是否设置为true。否则它就不能在集线器中工作。

    <ContentType ID="xxxxx"
        Name="xxxx"
        Group="xxxx"
        Description="xxxx"
        Inherits="TRUE"
        Version="0">
    </ContentType>
    
        3
  •  0
  •   Guy Cox    6 年前

    别忘了,您实际上可以在服务器场之间同步内容类型——当您在一个单独的服务器场上开发时,这尤其有价值,而且不想与用于管理您的内容类型的PNP框架发生冲突…在某些情况下,内容类型可能已经存在于生产场中,并且您需要在开发和/或测试中提供它们的副本。

    推荐文章