在SharePoint中部署多种内容类型的最佳实践
-
13-12-2019 - |
题
我正在开发一个大约的解决方案。 15自定义内容类型。因此,我在Visual Studio中创建了SharePoint项目并添加了在XML标记中定义的内容类型。 由于这些内容类型中的一些类型使用彼此之间的引用(查找列),因此我也添加了列表定义和列表实例。由于SharePoint 2010自SharePoint 2010的查找可以在XML中声明 - 一切都很好。
现在我的功能包含所有内容类型,列表定义和列表实例。
但问题是:有时部署成功,有时它会失败。我假设可能发生这种情况,因为特征内的元素没有激活顺序。现在我可以更改我的项目并为每个内容类型创建一个功能,并定义分配依赖项以定义激活顺序。但这将导致至少有20个功能,在我看来,这不能是所谓的解决方案来正确处理这一点。
如何将内容类型部署到同一解决方案中的其他内容类型的正确方法?
有一个限制:一切都必须沙盒,因为我想在线在SharePoint在线部署。
解决方案
我相信我的问题与你一样 - 我定义了两个内容类型; A和B,B依赖于A.并且两者都在单一特征中。但是,当部署时,我收到了错误:
部署步骤“激活功能”中发生错误: 由内容类型标识符指定的父内容类型0x010029043f0d68ec4df1bc85141aff451661不存在。
我看着Visual Studio在WSP / CAB文件中生成的Manifest.xml文件,并注意到两个内容类型元素.xml文件定义了错误的方式:
- b / components.xml
- 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>
. 不隶属于 StackOverflow