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

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

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

如何将内容类型部署到同一解决方案中的其他内容类型的正确方法?

有一个限制:一切都必须沙盒,因为我想在线在SharePoint在线部署。

有帮助吗?

解决方案

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

部署步骤“激活功能”中发生错误: 由内容类型标识符指定的父内容类型0x010029043f0d68ec4df1bc85141aff451661不存在。

我看着Visual Studio在WSP / CAB文件中生成的Manifest.xml文件,并注意到两个内容类型元素.xml文件定义了错误的方式:

  1. b / components.xml
  2. a / component.xml

此问题是为了简单地强制要素中的某些元素的顺序(即,将“root”内容类型文件置于第一个)。

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

<ElementManifests>
  <ElementManifest Location="A\Elements.xml" />
</ElementManifests>
.

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

<ElementManifests>
  <ElementManifest Location="A\Elements.xml" />
  <ElementManifest Location="B\Elements.xml" />
</ElementManifests>
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top