Лучшая практика для развертывания нескольких типов контента с зависимостями в SharePoint
-
13-12-2019 - |
Вопрос
Я разрабатываю решение с ок. 15 пользовательских типов контента. Поэтому я создал в Visual Studio A SharePoint Project и добавленные типы содержимого, определенные в XML Markup. Поскольку некоторые из этих типов контента используют ссылки между друг друга (поиск столбцов), я также добавил определения списка, а также экземпляры списка. Поскольку поиски можно объявить в XML, так как SharePoint 2010 - все хорошо.
Теперь моя функция содержит все типы содержимого, определения списка и экземпляры списка.
Но проблема в том, что иногда развертывание добивается успеха, а иногда это не удается. Я полагаю, что это может произойти, потому что элементы внутри функций не имеют порядка активации. Теперь я мог бы изменить свой проект и создать функцию для каждого типа контента и определить зависимости aCitvation для определения порядка активации. Но это приведет к не менее 20 функциям и на мой взгляд, это не может быть предполагаемым решением для обработки этого правильно.
Какой правильный способ развертывать типы содержимого с поисками на другие типы контента в одном и том же решении?
Есть одно ограничение: все должно быть песочница, потому что я хочу развернуть в SharePoint онлайн.
Решение
Я считаю, что у меня была такая же проблема, как вы - я определил два типа содержания; A и B, B полагались на А. И оба были в единственной особенности. Однако, когда пришло время развертывать, я получил ошибку:
Ошибка произошла в шаге развертывания «Активировать функции»: Тип родительского контента, указанный идентификатором типа содержимого 0x010029043F0D68EC4DF1BC85141AFF451661, не существует.
Я посмотрел в файл maineest.xml, что Visual Studio генерирует внутри файла WSP / CAB и заметил два элемента типа содержимого. Файлы .xml были определены неправильно:
- b / elements.xml
- a / elements.xml
Работа вокруг этого - просто заставить порядок определенных элементов.xml файла в функции (I.E. сначала поставить файлы типа содержимого «root»).
Откройте функцию, перейдите к манифесте, открывайте параметры редактирования и введите файл, который вы должны быть указаны в списке файлов Elements.xml.
<ElementManifests>
<ElementManifest Location="A\Elements.xml" />
</ElementManifests>
.
Это испускает следующие XML в файл манифеста:
<ElementManifests>
<ElementManifest Location="A\Elements.xml" />
<ElementManifest Location="B\Elements.xml" />
</ElementManifests>
.