Лучшие практики для развертывания нескольких типов контента с зависимостями в SharePoint - PullRequest
0 голосов
/ 14 марта 2012

Я разрабатываю решение с прибл. 15 пользовательских типов контента. Поэтому я создал в Visual Studio проект SharePoint и добавил типы контента, определенные в XML-разметке. Поскольку некоторые из этих типов контента используют ссылки между собой (Lookup-Columns), я также добавил определения списков и экземпляры списков. Поскольку поиски могут быть объявлены в XML начиная с SharePoint 2010 - все хорошо.

Теперь моя функция содержит все типы контента, определения списка и экземпляры списка.

Но проблема в том, что иногда развертывание завершается успешно, а иногда - неудачно. Я полагаю, это может произойти, потому что элементы в функциях не имеют порядка активации. Теперь я могу изменить свой проект и создать функцию для каждого типа контента и определить зависимости активации для определения порядка активации. Но это приведет к созданию как минимум 20 функций, и, по моему мнению, это не может быть правильным решением для правильной обработки.

Как правильно развернуть типы контента с помощью поиска на других типах контента в том же решении?

Есть одно ограничение: все должно быть изолированно, потому что я хочу развернуть в SharePoint Online.

1 Ответ

2 голосов
/ 26 марта 2012

Мне кажется, у меня была та же проблема, что и у вас - я определил два типа контента;A и B, B полагались на A. и оба были в единственном элементе.Однако когда пришло время развертывания, я получил ошибку:

Ошибка произошла на шаге развертывания «Активировать компоненты»: родительский тип контента, указанный идентификатором типа контента 0x010029043F0D68EC4DF1BC85141AFF451661, не существует.

Я посмотрел в файле Manifest.xml, который Visual Studio создает внутри файла wsp / cab, и заметил, что два файла типа Elements.xml содержимого были определены неправильно:

  1. B / Elements.xml
  2. A / Elements.xml

Чтобы обойти эту проблему, просто наведите порядок определенного файла Elements.xml в компоненте (т.е. поместите сначала файлы корневого типа контента).

Откройте функцию, перейдите в манифест, откройте параметры редактирования и введите файл, который необходимо указать первым в списке файлов Elements.xml.

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

При этом в файл манифеста выдается следующий XML-код:

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