在SharePoint中部署具有依赖关系的多种内容类型的最佳做法

在SharePoint中部署具有依赖关系的多种内容类型的最佳做法,sharepoint,deployment,contenttype,Sharepoint,Deployment,Contenttype,我正在开发一个包含大约15种自定义内容类型的解决方案。因此,我在VisualStudio中创建了一个SharePoint项目,并添加了XML标记中定义的内容类型。 由于其中一些内容类型在彼此之间使用引用(查找列),我还添加了列表定义和列表实例。自SharePoint 2010以来,可以用XML声明查找-一切正常 现在,我的功能包含所有内容类型、列表定义和列表实例 但问题是:有时部署成功,有时部署失败。我想这可能是因为特性中的元素没有激活顺序。现在我可以更改我的项目,为每种内容类型创建一个特性,并

我正在开发一个包含大约15种自定义内容类型的解决方案。因此,我在VisualStudio中创建了一个SharePoint项目,并添加了XML标记中定义的内容类型。 由于其中一些内容类型在彼此之间使用引用(查找列),我还添加了列表定义和列表实例。自SharePoint 2010以来,可以用XML声明查找-一切正常

现在,我的功能包含所有内容类型、列表定义和列表实例

但问题是:有时部署成功,有时部署失败。我想这可能是因为特性中的元素没有激活顺序。现在我可以更改我的项目,为每种内容类型创建一个特性,并定义一个激活顺序的acitvation依赖项。但这将导致至少20个功能,在我看来,这不是正确处理这一问题的假定解决方案

在同一解决方案中部署内容类型并查找其他内容类型的正确方法是什么


有一个限制:因为我想在SharePoint Online中部署,所以所有内容都必须进行沙盒处理。

我相信我遇到了与您相同的问题-我定义了两种内容类型;A和B,B依赖于A,两者都在单一特征中。但是,在部署时,我收到一个错误:

部署步骤“激活功能”中出错: 内容类型标识符0x010029043F0D68EC4DF1BC85141AFF451661指定的父内容类型不存在

我查看了Visual Studio在wsp/cab文件中生成的Manifest.xml文件,发现这两个content-type-Elements.xml文件的定义方式错误:

  • B/Elements.xml
  • A/Elements.xml
  • 解决这一问题的一个方法是简单地强制某些Elements.xml文件在功能中的顺序(即,首先放置“root”内容类型文件)

    打开该功能,转到清单,打开编辑选项,然后在Elements.xml文件列表中首先输入需要指定的文件

    
    
    这会将以下XML发送到清单文件中:

    
    
    描述“有时会失败”。您是否收到错误?它就是不起作用吗?您是否能够从SharePoint Online获取ULS日志?
    <ElementManifests>
      <ElementManifest Location="A\Elements.xml" />
      <ElementManifest Location="B\Elements.xml" />
    </ElementManifests>